Create a transfer
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.
curl -X POST "https://api.moov.io/accounts/{accountID}/transfers" \
-H "Authorization: Bearer {token}" \
-H "X-Moov-Version: v2026.10.00" \
-H "X-Idempotency-Key: 7d8f2a64-4b1e-4c3a-9f2d-1e5b6c7a8d90" \
-d '{
"source": {
"paymentMethodID": "9506dbf6-4208-44c3-ad8a-e4431660e1f2"
},
"destination": {
"paymentMethodID": "3f9969cf-a1f3-4d83-8ddc-229a506651cf"
},
"options": {
"cardPayment": {
"dynamicDescriptor": "WhlBdy *Yoga 11-12"
}
},
"amount": {
"currency": "USD",
"valueDecimal": "329.45"
},
"amountDetails": {
"tip": {
"currency": "USD",
"valueDecimal": "3.50"
},
"tax": {
"currency": "USD",
"valueDecimal": "8.25"
}
},
"description": "Transfer from card to wallet",
"metadata": {
"optional": "metadata"
}
}'mc, _ := moov.NewClient()
var accountID string // Partner account
mc.CreateTransfer(ctx, accountID, moov.CreateTransfer{
Amount: moov.Amount{
Currency: "USD",
Value: 100, // $1.00
},
Destination: moov.CreateTransfer_Destination{
PaymentMethodID: "string",
},
Source: moov.CreateTransfer_Source{
PaymentMethodID: "string",
},
Description: "Optional transaction description.",
})
import { Moov } from "@moovio/sdk";
const moov = new Moov({
security: {
username: "",
password: "",
},
});
async function run() {
const result = await moov.transfers.create({
xIdempotencyKey: "d6903402-776f-48d6-8fba-0358959d34e5",
accountID: "ea9f2225-403b-4e2c-93b0-0eda090ffa65",
createTransfer: {
source: {
paymentMethodID: "9506dbf6-4208-44c3-ad8a-e4431660e1f2",
},
destination: {
paymentMethodID: "3f9969cf-a1f3-4d83-8ddc-229a506651cf",
},
options: {
cardPayment: {
dynamicDescriptor: "WhlBdy *Yoga 11-12",
},
},
amount: {
currency: "USD",
valueDecimal: "329.45",
},
description: "Transfer from card to wallet",
metadata: {
"optional": "metadata",
},
amountDetails: {
tip: {
currency: "USD",
valueDecimal: "3.50",
},
tax: {
currency: "USD",
valueDecimal: "8.25",
},
},
},
});
console.log(result);
}
run();declare(strict_types=1);
require 'vendor/autoload.php';
use Moov\MoovPhp;
use Moov\MoovPhp\Models\Components;
$sdk = MoovPhp\Moov::builder()
->setSecurity(
new Components\Security(
username: '',
password: '',
)
)
->build();
$createTransfer = new Components\CreateTransfer(
source: new Components\CreateTransferSource(
paymentMethodID: '9506dbf6-4208-44c3-ad8a-e4431660e1f2',
),
destination: new Components\CreateTransferDestination(
paymentMethodID: '3f9969cf-a1f3-4d83-8ddc-229a506651cf',
),
options: new Components\CreateTransferRailOptions(
cardPayment: new Components\CreateTransferSourceCard(
dynamicDescriptor: 'WhlBdy *Yoga 11-12',
),
),
amount: new Components\AmountDecimal(
currency: 'USD',
valueDecimal: '329.45',
),
description: 'Transfer from card to wallet',
metadata: [
'optional' => 'metadata',
],
amountDetails: new Components\CreateTransferAmountDetails(
tip: new Components\AmountDecimal(
currency: 'USD',
valueDecimal: '3.50',
),
tax: new Components\AmountDecimal(
currency: 'USD',
valueDecimal: '8.25',
),
),
);
$response = $sdk->transfers->create(
xIdempotencyKey: 'd6903402-776f-48d6-8fba-0358959d34e5',
accountID: 'ea9f2225-403b-4e2c-93b0-0eda090ffa65',
createTransfer: $createTransfer
);
if ($response->createTransferResponse !== null) {
// handle response
}package hello.world;
import io.moov.sdk.Moov;
import io.moov.sdk.models.components.*;
import io.moov.sdk.models.errors.*;
import io.moov.sdk.models.operations.CreateTransferResponse;
import java.lang.Exception;
import java.lang.Object;
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();
CreateTransferResponse res = sdk.transfers().create()
.xIdempotencyKey("d6903402-776f-48d6-8fba-0358959d34e5")
.accountID("ea9f2225-403b-4e2c-93b0-0eda090ffa65")
.createTransfer(CreateTransfer.builder()
.source(CreateTransferSource.builder()
.paymentMethodID("9506dbf6-4208-44c3-ad8a-e4431660e1f2")
.build())
.destination(CreateTransferDestination.builder()
.paymentMethodID("3f9969cf-a1f3-4d83-8ddc-229a506651cf")
.build())
.amount(AmountDecimal.builder()
.currency("USD")
.valueDecimal("329.45")
.build())
.options(CreateTransferRailOptions.builder()
.cardPayment(CreateTransferSourceCard.builder()
.dynamicDescriptor("WhlBdy *Yoga 11-12")
.build())
.build())
.description("Transfer from card to wallet")
.metadata(Map.ofEntries(
Map.entry("optional", "metadata")))
.amountDetails(CreateTransferAmountDetails.builder()
.tip(AmountDecimal.builder()
.currency("USD")
.valueDecimal("3.50")
.build())
.tax(AmountDecimal.builder()
.currency("USD")
.valueDecimal("8.25")
.build())
.build())
.build())
.call();
if (res.createTransferResponse().isPresent()) {
io.moov.sdk.models.components.CreateTransferResponse unionValue = res.createTransferResponse().get();
Object raw = unionValue.value();
if (raw instanceof CreatedTransfer) {
CreatedTransfer createdTransferValue = (CreatedTransfer) raw;
// Handle createdTransfer variant
} else if (raw instanceof AsyncTransfer) {
AsyncTransfer yncTransferValue = (AsyncTransfer) raw;
// Handle asyncTransfer variant
} else {
// Unknown or unsupported variant
}
}
}
}from moovio_sdk import Moov
from moovio_sdk.models import components
with Moov(
security=components.Security(
username="",
password="",
),
) as moov:
res = moov.transfers.create(x_idempotency_key="d6903402-776f-48d6-8fba-0358959d34e5", account_id="ea9f2225-403b-4e2c-93b0-0eda090ffa65", source={
"payment_method_id": "9506dbf6-4208-44c3-ad8a-e4431660e1f2",
}, destination={
"payment_method_id": "3f9969cf-a1f3-4d83-8ddc-229a506651cf",
}, amount={
"currency": "USD",
"value_decimal": "329.45",
}, options=components.CreateTransferRailOptions(
card_payment=components.CreateTransferSourceCard(
dynamic_descriptor="WhlBdy *Yoga 11-12",
),
), facilitator_fee=components.CreateTransferFacilitatorFee(
total=components.AmountDecimal(
currency="USD",
value_decimal="12.987654321",
),
markup=components.AmountDecimal(
currency="USD",
value_decimal="12.987654321",
),
), description="Transfer from card to wallet", metadata={
"optional": "metadata",
}, line_items={
"items": [
{
"name": "<value>",
"base_price": {
"currency": "USD",
"value_decimal": "12.987654321",
},
"quantity": 666094,
"options": [
{
"name": "<value>",
"quantity": 611009,
"price_modifier": {
"currency": "USD",
"value_decimal": "12.987654321",
},
},
],
},
],
}, amount_details=components.CreateTransferAmountDetails(
tip=components.AmountDecimal(
currency="USD",
value_decimal="3.50",
),
tax=components.AmountDecimal(
currency="USD",
value_decimal="8.25",
),
))
# Handle response
print(res)require 'moov_ruby'
Models = ::Moov::Models
s = ::Moov::Client.new(
security: Models::Components::Security.new(
username: '',
password: ''
)
)
res = s.transfers.create(x_idempotency_key: 'd6903402-776f-48d6-8fba-0358959d34e5', account_id: 'ea9f2225-403b-4e2c-93b0-0eda090ffa65', create_transfer: Models::Components::CreateTransfer.new(
source: Models::Components::CreateTransferSource.new(
payment_method_id: '9506dbf6-4208-44c3-ad8a-e4431660e1f2'
),
destination: Models::Components::CreateTransferDestination.new(
payment_method_id: '3f9969cf-a1f3-4d83-8ddc-229a506651cf'
),
options: Models::Components::CreateTransferRailOptions.new(
card_payment: Models::Components::CreateTransferSourceCard.new(
dynamic_descriptor: 'WhlBdy *Yoga 11-12'
)
),
amount: Models::Components::AmountDecimal.new(
currency: 'USD',
value_decimal: '329.45'
),
description: 'Transfer from card to wallet',
metadata: {
'optional' => 'metadata',
},
amount_details: Models::Components::CreateTransferAmountDetails.new(
tip: Models::Components::AmountDecimal.new(
currency: 'USD',
value_decimal: '3.50'
),
tax: Models::Components::AmountDecimal.new(
currency: 'USD',
value_decimal: '8.25'
)
)
))
unless res.create_transfer_response.nil?
# handle response
endusing Moov.Sdk;
using Moov.Sdk.Models.Components;
using System.Collections.Generic;
var sdk = new MoovClient(security: new Security() {
Username = "",
Password = "",
});
var res = await sdk.Transfers.CreateAsync(
xIdempotencyKey: "d6903402-776f-48d6-8fba-0358959d34e5",
accountID: "ea9f2225-403b-4e2c-93b0-0eda090ffa65",
body: new CreateTransfer() {
Source = new CreateTransferSource() {
PaymentMethodID = "9506dbf6-4208-44c3-ad8a-e4431660e1f2",
},
Destination = new CreateTransferDestination() {
PaymentMethodID = "3f9969cf-a1f3-4d83-8ddc-229a506651cf",
},
Options = new CreateTransferRailOptions() {
CardPayment = new CreateTransferSourceCard() {
DynamicDescriptor = "WhlBdy *Yoga 11-12",
},
},
Amount = new AmountDecimal() {
Currency = "USD",
ValueDecimal = "329.45",
},
Description = "Transfer from card to wallet",
Metadata = new Dictionary<string, string>() {
{ "optional", "metadata" },
},
AmountDetails = new CreateTransferAmountDetails() {
Tip = new AmountDecimal() {
Currency = "USD",
ValueDecimal = "3.50",
},
Tax = new AmountDecimal() {
Currency = "USD",
ValueDecimal = "8.25",
},
},
}
);
// handle response{
"transferID": "d835gf30-4b19-4850-a9b2-c0624c41ecb3",
"transferType": "card-payment",
"status": "pending",
"description": "Transfer from card to wallet",
"createdOn": "2025-01-21T21:32:16Z",
"source": {
"paymentMethodID": "9506dbf6-4208-44c3-ad8a-e4431660e1f2",
"paymentMethodType": "card-payment",
"account": {
"accountID": "7e4b26c2-b399-49ef-8390-50e1ea44d550",
"email": "jules@julesjackson.com",
"displayName": "Jules Jackson"
},
"card": {
"cardID": "aefd5563-93c6-413c-875e-1bd0ebfc116d",
"fingerprint": "2f5d782ceef1c3bd31ed5...",
"brand": "Visa",
"cardType": "credit",
"lastFourCardNumber": "2000",
"bin": "400020",
"expiration": {
"month": "01",
"year": "28"
},
"holderName": "Jules Jackson",
"billingAddress": {
"postalCode": "80301"
},
"domesticPushToCard": "standard",
"domesticPullFromCard": "supported",
"cardVerification": {
"cvv": "unavailable",
"addressLine1": "unavailable",
"postalCode": "unavailable",
"accountName": {
"firstName": "unavailable",
"lastName": "unavailable",
"middleName": "unavailable",
"fullName": "unavailable"
}
},
"issuer": "Moov Visa Sandbox",
"issuerCountry": "US",
"cardAccountUpdater": {}
}
},
"destination": {
"paymentMethodID": "3f9969cf-a1f3-4d83-8ddc-229a506651cf",
"paymentMethodType": "moov-wallet",
"account": {
"accountID": "34233b72-780c-4a0d-8b08-cbbe23k878f8",
"email": "john@wholebodyfitness.io",
"displayName": "Whole Body Fitness"
},
"wallet": {
"walletID": "744b2e78-8cc8-4a6a-af42-611e3b844503",
"partnerAccountID": "65b57f28-49e9-4afb-9bf6-7e4fb6444917",
"walletType": "general"
}
},
"options": {
"cardPayment": {
"dynamicDescriptor": "WhlBdy *Yoga 11-12"
}
},
"processingDetails": {
"cardPayment": {
"status": "confirmed"
}
}
}{
"transferID": "d835gf30-4b19-4850-a9b2-c0624c41ecb3",
"createdOn": "2025-01-21T21:32:16Z"
}Response headers
x-request-id
string
required
{
"transferID": "string",
"createdOn": "2019-08-24T14:15:22Z"
}Response headers
x-request-id
string
required
{
"transferID": "d835gf30-4b19-4850-a9b2-c0624c41ecb3",
"transferType": "card-payment",
"source": {
"paymentMethodID": "9506dbf6-4208-44c3-ad8a-e4431660e1f2",
"paymentMethodType": "card-payment",
"account": {
"accountID": "7e4b26c2-b399-49ef-8390-50e1ea44d550",
"email": "jules@julesjackson.com",
"displayName": "Jules Jackson"
},
"card": {
"cardID": "aefd5563-93c6-413c-875e-1bd0ebfc116d",
"fingerprint": "2f5d782ceef1c3bd31ed5...",
"brand": "Visa",
"cardType": "credit",
"lastFourCardNumber": "2000",
"bin": "400020",
"expiration": {
"month": "01",
"year": "28"
},
"holderName": "Jules Jackson",
"billingAddress": {
"postalCode": "80301"
},
"domesticPushToCard": "standard",
"domesticPullFromCard": "supported",
"cardVerification": {
"cvv": "unavailable",
"addressLine1": "unavailable",
"postalCode": "unavailable",
"accountName": {
"firstName": "unavailable",
"lastName": "unavailable",
"middleName": "unavailable",
"fullName": "unavailable"
}
},
"issuer": "Moov Visa Sandbox",
"issuerCountry": "US",
"cardAccountUpdater": {}
}
},
"destination": {
"paymentMethodID": "3f9969cf-a1f3-4d83-8ddc-229a506651cf",
"paymentMethodType": "moov-wallet",
"account": {
"accountID": "34233b72-780c-4a0d-8b08-cbbe23k878f8",
"email": "john@wholebodyfitness.io",
"displayName": "Whole Body Fitness"
},
"wallet": {
"walletID": "744b2e78-8cc8-4a6a-af42-611e3b844503",
"partnerAccountID": "65b57f28-49e9-4afb-9bf6-7e4fb6444917",
"walletType": "general"
}
},
"status": "pending",
"amount": {
"currency": "USD",
"valueDecimal": "329.45"
},
"amountDetails": {
"tip": {
"currency": "USD",
"valueDecimal": "3.50"
},
"tax": {
"currency": "USD",
"valueDecimal": "8.25"
}
},
"description": "Transfer from card to wallet",
"createdOn": "2025-01-21T21:32:16Z",
"moovFees": [
{
"accountID": "7e4b26c2-b399-49ef-8390-50e1ea44d550",
"transferParty": "source",
"totalAmount": {
"currency": "USD",
"valueDecimal": "0.10"
},
"feeIDs": [
"9d957d33-1a9a-47aa-9460-fe1a90f003dd"
]
}
],
"options": {
"cardPayment": {
"dynamicDescriptor": "WhlBdy *Yoga 11-12"
}
},
"processingDetails": {
"cardPayment": {
"status": "confirmed",
"authorizationCode": "A1B2C3",
"networkTransactionID": "123456789012345"
}
}
}Response headers
x-request-id
string
required
{
"error": "string"
}Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
{
"transferID": "d835gf30-4b19-4850-a9b2-c0624c41ecb3",
"transferType": "card-payment",
"source": {
"paymentMethodID": "9506dbf6-4208-44c3-ad8a-e4431660e1f2",
"paymentMethodType": "card-payment",
"account": {
"accountID": "7e4b26c2-b399-49ef-8390-50e1ea44d550",
"email": "jules@julesjackson.com",
"displayName": "Jules Jackson"
},
"card": {
"cardID": "aefd5563-93c6-413c-875e-1bd0ebfc116d",
"fingerprint": "2f5d782ceef1c3bd31ed5...",
"brand": "Visa",
"cardType": "credit",
"lastFourCardNumber": "2000",
"bin": "400020",
"expiration": {
"month": "01",
"year": "28"
},
"holderName": "Jules Jackson",
"billingAddress": {
"postalCode": "80301"
},
"domesticPushToCard": "standard",
"domesticPullFromCard": "supported",
"cardVerification": {
"cvv": "unavailable",
"addressLine1": "unavailable",
"postalCode": "unavailable",
"accountName": {
"firstName": "unavailable",
"lastName": "unavailable",
"middleName": "unavailable",
"fullName": "unavailable"
}
},
"issuer": "Moov Visa Sandbox",
"issuerCountry": "US",
"cardAccountUpdater": {}
}
},
"destination": {
"paymentMethodID": "3f9969cf-a1f3-4d83-8ddc-229a506651cf",
"paymentMethodType": "moov-wallet",
"account": {
"accountID": "34233b72-780c-4a0d-8b08-cbbe23k878f8",
"email": "john@wholebodyfitness.io",
"displayName": "Whole Body Fitness"
},
"wallet": {
"walletID": "744b2e78-8cc8-4a6a-af42-611e3b844503",
"partnerAccountID": "65b57f28-49e9-4afb-9bf6-7e4fb6444917",
"walletType": "general"
}
},
"status": "pending",
"amount": {
"currency": "USD",
"valueDecimal": "329.45"
},
"amountDetails": {
"tip": {
"currency": "USD",
"valueDecimal": "3.50"
},
"tax": {
"currency": "USD",
"valueDecimal": "8.25"
}
},
"description": "Transfer from card to wallet",
"createdOn": "2025-01-21T21:32:16Z",
"moovFees": [
{
"accountID": "7e4b26c2-b399-49ef-8390-50e1ea44d550",
"transferParty": "source",
"totalAmount": {
"currency": "USD",
"valueDecimal": "0.10"
},
"feeIDs": [
"9d957d33-1a9a-47aa-9460-fe1a90f003dd"
]
}
],
"options": {
"cardPayment": {
"dynamicDescriptor": "WhlBdy *Yoga 11-12"
}
},
"processingDetails": {
"cardPayment": {
"status": "confirmed",
"authorizationCode": "A1B2C3",
"networkTransactionID": "123456789012345"
}
}
}Response headers
x-request-id
string
required
{
"amount": "string",
"source": "string",
"sourcePaymentMethodID": "string",
"destinationPaymentMethodID": "string",
"description": "string",
"FacilitatorFee.TotalDecimal": "string",
"FacilitatorFee.MarkupDecimal": "string",
"metadata": "string",
"foreignID": "string",
"lineItems": {
"items": {
"property1": {
"productID": "string",
"name": "string",
"basePrice": {
"currency": "string",
"valueDecimal": "string"
},
"options": {
"property1": {
"name": "string",
"group": "string",
"priceModifier": {
"currency": "string",
"valueDecimal": "string"
},
"quantity": "string",
"imageIDs": "string"
},
"property2": {
"name": "string",
"group": "string",
"priceModifier": {
"currency": "string",
"valueDecimal": "string"
},
"quantity": "string",
"imageIDs": "string"
}
},
"quantity": "string",
"imageIDs": "string"
},
"property2": {
"productID": "string",
"name": "string",
"basePrice": {
"currency": "string",
"valueDecimal": "string"
},
"options": {
"property1": {
"name": "string",
"group": "string",
"priceModifier": {
"currency": "string",
"valueDecimal": "string"
},
"quantity": "string",
"imageIDs": "string"
},
"property2": {
"name": "string",
"group": "string",
"priceModifier": {
"currency": "string",
"valueDecimal": "string"
},
"quantity": "string",
"imageIDs": "string"
}
},
"quantity": "string",
"imageIDs": "string"
}
}
},
"amountDetails": {
"tip": "string",
"tax": "string",
"surcharge": "string"
}
}Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
Headers
X-Moov-Version
string
v2026.08.00 uses v2026.07.00.
A malformed value, such as 2022, returns a 404 response.
v2026.10.00
x-idempotency-key
string
required
x-wait-for
string
rail-response
Path parameters
accountID
string
required
Body
amount
object
required
Show child attributes
amount
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
destination
object
required
Show child attributes
destination
paymentMethodID
string
required
source
object
required
paymentMethodID or a transferID.
Show child attributes
source
paymentMethodID
string
paymentToken
string
transferID
string
transferID is used to create a transfer group,
associating the new transfer with a parent transfer.
amountDetails
object
Show child attributes
amountDetails
surcharge
object
Show child attributes
amountDetails.surcharge
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
tax
object
Show child attributes
amountDetails.tax
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
tip
object
Show child attributes
amountDetails.tip
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
description
string
<=256 characters
facilitatorFee
object
Show child attributes
facilitatorFee
markup
object
total or markup can be set.
Show child attributes
facilitatorFee.markup
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
total
object
total or markup can be set.
Show child attributes
facilitatorFee.total
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
feePaidBy
object
Show child attributes
feePaidBy
payout
string
source.
source,
destination
foreignID
string
lineItems
object
Show child attributes
lineItems
items
array<object>
required
Show child attributes
lineItems.items[]
basePrice
object
Show child attributes
lineItems.items[].basePrice
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
imageIDs
array<string>
deprecated
name
string
[1 to 150] characters
options
array<object>
Show child attributes
lineItems.items[].options[]
group
string
<=100 characters
imageIDs
array<string>
deprecated
name
string
[1 to 150] characters
priceModifier
object
Show child attributes
lineItems.items[].options[].priceModifier
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
quantity
integer<int32>
productID
string
quantity
integer<int32>
metadata
object
options
object
Show child attributes
options
achCredit
object
Show child attributes
options.achCredit
addenda
array<object>
Show child attributes
options.achCredit.addenda[]
record
string
<=80 characters
companyEntryDescription
string
[4 to 10] characters
originatingCompanyName
string
[4 to 16] characters
achDebit
object
Show child attributes
options.achDebit
addenda
array<object>
Show child attributes
options.achDebit.addenda[]
record
string
<=80 characters
companyEntryDescription
string
[4 to 10] characters
debitHoldPeriod
string<enum>
no-hold,
1-day,
2-days
originatingCompanyName
string
[4 to 16] characters
secCode
string<enum>
WEB,
PPD,
CCD,
TEL
cardPayment
object
Show child attributes
options.cardPayment
dynamicDescriptor
string
[4 to 22] characters
transactionSource
string<enum>
Specifies the nature and initiator of a transaction.
Crucial for recurring and merchant-initiated transactions as per card scheme rules. Omit for customer-initiated e-commerce transactions.
first-recurring,
recurring,
unscheduled
pullFromCard
object
Show child attributes
options.pullFromCard
dynamicDescriptor
string
[4 to 22] characters
transactionSource
string<enum>
Specifies the nature and initiator of a transaction.
Crucial for recurring and merchant-initiated transactions as per card scheme rules. Omit for customer-initiated e-commerce transactions.
first-recurring,
recurring,
unscheduled
pushToCard
object
Show child attributes
options.pushToCard
dynamicDescriptor
string
[4 to 22] characters
payoutType
string
loyalty
scheduledDeliveryOn
string<date-time>
Response
amount
object
card-payment transfer reports the approved authorization amount until a final capture is created.
For these transfers, when a final capture is created, this is updated to the cumulative captured amount.
For other transfer types, this is the transfer amount.
Show child attributes
amount
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
amountDetails
object
card-payment transfer, this is the aggregate of all captures' amountDetails.
Show child attributes
amountDetails
surcharge
object
Show child attributes
amountDetails.surcharge
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
tax
object
Show child attributes
amountDetails.tax
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
tip
object
Show child attributes
amountDetails.tip
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
authorization
object
card-payment transfer.
card-payment transfer.
Show child attributes
authorization
amountDetails
object
The tip, tax, and surcharge authorized by the card network.
These describe the authorized amount and are fixed.
They can differ from the transfer's amountDetails, which is the aggregate of all captures' amountDetails.
Show child attributes
authorization.amountDetails
surcharge
object
Show child attributes
authorization.amountDetails.surcharge
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
tax
object
Show child attributes
authorization.amountDetails.tax
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
tip
object
Show child attributes
authorization.amountDetails.tip
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
authorizationID
string
required
authorizedAmount
object
required
Show child attributes
authorization.authorizedAmount
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
capturableAmount
object
required
Show child attributes
authorization.capturableAmount
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
capturedAmount
object
required
Show child attributes
authorization.capturedAmount
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
expiresOn
string<date-time>
requestedAmount
object
required
Show child attributes
authorization.requestedAmount
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
completedOn
string<date-time>
createdOn
string<date-time>
description
string
<=128 characters
destination
object
Show child attributes
destination
account
object
Show child attributes
destination.account
accountID
string
required
displayName
string
required
string
required
applePay
object
Show child attributes
destination.applePay
brand
string<enum>
required
American Express,
Discover,
Mastercard,
Visa,
Unknown
cardDisplayName
string
required
User-friendly name of the tokenized card returned by Apple.
It usually contains the brand and the last four digits of the underlying card. There is no standard format.
cardType
string<enum>
required
debit,
credit,
prepaid,
unknown
dynamicLastFour
string
required
expiration
object
required
Show child attributes
destination.applePay.expiration
month
string
2 characters
required
year
string
2 characters
required
fingerprint
string
<=100 characters
required
issuerCountry
string
bankAccount
object
Show child attributes
destination.bankAccount
bankAccountID
string
required
bankAccountType
string<enum>
required
checking,
savings,
general-ledger,
loan
bankName
string
required
fingerprint
string
<=100 characters
required
Once the bank account is linked, we don't reveal the full bank account number.
The fingerprint acts as a way to identify whether two linked bank accounts are the same.
holderName
string
required
holderType
string<enum>
required
individual,
business,
guest
lastFourAccountNumber
string
required
routingNumber
string
required
status
string<enum>
required
new,
verified,
verificationFailed,
pending,
errored
updatedOn
string<date-time>
required
riskVerificationOutcome
string
notAttempted when
requestRiskVerification was not set, or the calling account was not allowlisted.
notAttempted,
success,
inconclusive,
decline
card
object
Show child attributes
destination.card
billingAddress
object
required
Show child attributes
destination.card.billingAddress
addressLine1
string
<=60 characters
addressLine2
string
<=32 characters
city
string
<=32 characters
country
string
<=2 characters
postalCode
string
<=10 characters
required
stateOrProvince
string
<=2 characters
bin
string
[6 to 8] characters
required
brand
string<enum>
required
American Express,
Discover,
Mastercard,
Visa,
Unknown
cardID
string
required
cardType
string<enum>
required
debit,
credit,
prepaid,
unknown
cardVerification
object
required
Show child attributes
destination.card.cardVerification
addressLine1
string
required
postalCode; the card network returns a single code covering both address fields.
noMatch,
match,
notChecked,
unavailable,
partialMatch
cvv
string
required
noMatch,
match,
notChecked,
unavailable,
partialMatch
postalCode
string
required
addressLine1; the card network returns a single code covering both address fields.
noMatch,
match,
notChecked,
unavailable,
partialMatch
accountName
object
Show child attributes
destination.card.cardVerification.accountName
firstName
string
noMatch,
match,
notChecked,
unavailable,
partialMatch
fullName
string
noMatch,
match,
notChecked,
unavailable,
partialMatch
lastName
string
noMatch,
match,
notChecked,
unavailable,
partialMatch
middleName
string
noMatch,
match,
notChecked,
unavailable,
partialMatch
expiration
object
required
Show child attributes
destination.card.expiration
month
string
2 characters
required
year
string
2 characters
required
fingerprint
string
<=100 characters
required
lastFourCardNumber
string
4 characters
required
cardAccountUpdater
object
Show child attributes
destination.card.cardAccountUpdater
updateType
string<enum>
unspecified,
account-closed,
contact-cardholder,
expiration-update,
no-change,
no-match,
number-update
updatedOn
string<date-time>
cardOnFile
boolean
domesticPullFromCard
string<enum>
not-supported,
supported,
unknown
domesticPushToCard
string<enum>
not-supported,
standard,
fast-funds,
unknown
holderName
string
issuer
string
issuerCountry
string
merchantAccountID
string
googlePay
object
Show child attributes
destination.googlePay
brand
string<enum>
required
American Express,
Discover,
Mastercard,
Visa,
Unknown
cardDisplayName
string
required
User-friendly name of the tokenized card returned by Google Pay.
It usually contains the last four digits of the underlying card. There is no standard format.
cardType
string<enum>
required
debit,
credit,
prepaid,
unknown
dynamicLastFour
string
4 characters
required
expiration
object
required
Show child attributes
destination.googlePay.expiration
month
string
2 characters
required
year
string
2 characters
required
fingerprint
string
<=100 characters
required
tokenID
string
required
authMethod
string<enum>
PAN_ONLY,
CRYPTOGRAM_3DS
issuerCountry
string
paymentMethodID
string
paymentMethodType
string<enum>
moov-wallet,
ach-debit-fund,
ach-debit-collect,
ach-credit-standard,
ach-credit-same-day,
rtp-credit,
card-payment,
push-to-card,
pull-from-card,
apple-pay,
card-present-payment,
instant-bank-credit,
push-to-apple-pay,
pull-from-apple-pay,
google-pay,
push-to-google-pay,
pull-from-google-pay
wallet
object
Show child attributes
destination.wallet
partnerAccountID
string<uuid>
required
walletID
string
required
walletType
string<enum>
required
Type of a wallet.
default: The system-generated wallet automatically created when an account is granted the wallet capability.general: An additional, user-defined wallet created via API or Dashboard.card-issuing: The system-generated wallet automatically created when an account is granted the card-issuing capability.
default,
general,
card-issuing
disputedAmount
object
Show child attributes
disputedAmount
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
facilitatorFee
object
Show child attributes
facilitatorFee
markup
object
Show child attributes
facilitatorFee.markup
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
total
object
Show child attributes
facilitatorFee.total
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
failureReason
string<enum>
source-payment-error,
destination-payment-error,
wallet-insufficient-funds,
rejected-high-risk,
processing-error
foreignID
string
groupID
string
lineItems
object
Show child attributes
lineItems
items
array<object>
required
Show child attributes
lineItems.items[]
basePrice
object
Show child attributes
lineItems.items[].basePrice
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
images
array<object>
Show child attributes
lineItems.items[].images[]
altText
string
<=125 characters
imageID
string
link
string<uri>
publicID
string
Pattern
name
string
[1 to 150] characters
options
array<object>
Show child attributes
lineItems.items[].options[]
group
string
<=100 characters
images
array<object>
Show child attributes
lineItems.items[].options[].images[]
altText
string
<=125 characters
imageID
string
link
string<uri>
publicID
string
Pattern
name
string
[1 to 150] characters
priceModifier
object
Show child attributes
lineItems.items[].options[].priceModifier
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
quantity
integer<int32>
productID
string
quantity
integer<int32>
metadata
object
moovFee
object
Show child attributes
moovFee
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
moovFeeDetails
object
Show child attributes
moovFeeDetails
moovProcessing
object
required
Show child attributes
moovFeeDetails.moovProcessing
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
cardScheme
object
Show child attributes
moovFeeDetails.cardScheme
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
discount
object
Show child attributes
moovFeeDetails.discount
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
interchange
object
Show child attributes
moovFeeDetails.interchange
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
occurrenceID
string
options
object
Show child attributes
options
achCredit
object
Show child attributes
options.achCredit
addenda
array<object>
Show child attributes
options.achCredit.addenda[]
isMasked
boolean
record
string
<=80 characters
companyEntryDescription
string
[4 to 10] characters
originatingCompanyName
string
[4 to 16] characters
achDebit
object
Show child attributes
options.achDebit
addenda
array<object>
Show child attributes
options.achDebit.addenda[]
isMasked
boolean
record
string
<=80 characters
companyEntryDescription
string
[4 to 10] characters
debitHoldPeriod
string<enum>
no-hold,
1-day,
2-days
originatingCompanyName
string
[4 to 16] characters
secCode
string<enum>
WEB,
PPD,
CCD,
TEL
cardPayment
object
Show child attributes
options.cardPayment
dynamicDescriptor
string
[4 to 22] characters
transactionSource
string<enum>
Specifies the nature and initiator of a transaction.
Crucial for recurring and merchant-initiated transactions as per card scheme rules. Omit for customer-initiated e-commerce transactions.
first-recurring,
recurring,
unscheduled
pullFromCard
object
Show child attributes
options.pullFromCard
dynamicDescriptor
string
[4 to 22] characters
transactionSource
string<enum>
Specifies the nature and initiator of a transaction.
Crucial for recurring and merchant-initiated transactions as per card scheme rules. Omit for customer-initiated e-commerce transactions.
first-recurring,
recurring,
unscheduled
pushToCard
object
Show child attributes
options.pushToCard
dynamicDescriptor
string
[4 to 22] characters
scheduledDeliveryOn
string<date-time>
paymentLinkCode
string
processingDetails
object
Show child attributes
processingDetails
achCredit
object
Show child attributes
processingDetails.achCredit
status
string<enum>
required
,
initiated,
originated,
corrected,
returned,
completed,
canceled
traceNumber
string
<=15 characters
required
correction
object
Show child attributes
processingDetails.achCredit.correction
code
string
description
string
reason
string
return
object
Show child attributes
processingDetails.achCredit.return
code
string
description
string
reason
string
achDebit
object
Show child attributes
processingDetails.achDebit
status
string<enum>
required
,
initiated,
originated,
corrected,
returned,
completed,
canceled
traceNumber
string
<=15 characters
required
correction
object
Show child attributes
processingDetails.achDebit.correction
code
string
description
string
reason
string
return
object
Show child attributes
processingDetails.achDebit.return
code
string
description
string
reason
string
cardPayment
object
Show child attributes
processingDetails.cardPayment
authorizationCode
string
failureCode
string<enum>
call-issuer,
do-not-honor,
processing-error,
invalid-transaction,
invalid-amount,
no-such-issuer,
reenter-transaction,
cvv-mismatch,
lost-or-stolen,
insufficient-funds,
invalid-card-number,
invalid-merchant,
expired-card,
incorrect-pin,
transaction-not-allowed,
suspected-fraud,
amount-limit-exceeded,
velocity-limit-exceeded,
revocation-of-authorization,
card-not-activated,
issuer-not-available,
could-not-route,
cardholder-account-closed,
account-closed,
account-not-activated,
authentication-failed,
authentication-required,
cardholder-action-required,
format-error,
invalid-pin,
offline-approved,
offline-declined,
partial-approval,
payment-stopped,
pin-required,
record-not-found,
surcharge-not-permitted,
transaction-reversed,
verification-failed,
unknown-issue,
duplicate-transaction
networkTransactionID
string
retrievalReferenceNumber
string
status
string<enum>
initiated,
confirmed,
canceled,
settled,
failed,
completed,
cleared-externally
instantBankCredit
object
Show child attributes
processingDetails.instantBankCredit
network
string<enum>
required
fednow,
rtp
status
string<enum>
required
initiated,
completed,
failed,
accepted-without-posting
endToEndID
string
failureCode
string<enum>
processing-error,
invalid-account,
account-closed,
account-blocked,
invalid-field,
transaction-not-supported,
limit-exceeded,
invalid-amount,
customer-deceased,
participant-not-available,
other
networkResponseCode
string
pullFromCard
object
Show child attributes
processingDetails.pullFromCard
status
string<enum>
required
initiated,
failed,
completed
authorizationCode
string
failureCode
string<enum>
call-issuer,
do-not-honor,
processing-error,
invalid-transaction,
invalid-amount,
no-such-issuer,
reenter-transaction,
cvv-mismatch,
lost-or-stolen,
insufficient-funds,
invalid-card-number,
invalid-merchant,
expired-card,
incorrect-pin,
transaction-not-allowed,
suspected-fraud,
amount-limit-exceeded,
velocity-limit-exceeded,
revocation-of-authorization,
card-not-activated,
issuer-not-available,
could-not-route,
cardholder-account-closed,
account-closed,
account-not-activated,
authentication-failed,
authentication-required,
cardholder-action-required,
format-error,
invalid-pin,
offline-approved,
offline-declined,
partial-approval,
payment-stopped,
pin-required,
record-not-found,
surcharge-not-permitted,
transaction-reversed,
verification-failed,
unknown-issue,
duplicate-transaction
networkResponseCode
string
networkTransactionID
string
pushToCard
object
Show child attributes
processingDetails.pushToCard
status
string<enum>
required
initiated,
deferred,
canceled,
failed,
completed
authorizationCode
string
failureCode
string<enum>
call-issuer,
do-not-honor,
processing-error,
invalid-transaction,
invalid-amount,
no-such-issuer,
reenter-transaction,
cvv-mismatch,
lost-or-stolen,
insufficient-funds,
invalid-card-number,
invalid-merchant,
expired-card,
incorrect-pin,
transaction-not-allowed,
suspected-fraud,
amount-limit-exceeded,
velocity-limit-exceeded,
revocation-of-authorization,
card-not-activated,
issuer-not-available,
could-not-route,
cardholder-account-closed,
account-closed,
account-not-activated,
authentication-failed,
authentication-required,
cardholder-action-required,
format-error,
invalid-pin,
offline-approved,
offline-declined,
partial-approval,
payment-stopped,
pin-required,
record-not-found,
surcharge-not-permitted,
transaction-reversed,
verification-failed,
unknown-issue,
duplicate-transaction
networkResponseCode
string
networkTransactionID
string
refundedAmount
object
Show child attributes
refundedAmount
currency
string
required
Pattern
valueDecimal
string
required
Pattern
A decimal-formatted numerical string that represents up to 9 decimal place precision.
For example, $12.987654321 is '12.987654321'.
scheduleID
string
source
object
Show child attributes
source
account
object
Show child attributes
source.account
accountID
string
required
displayName
string
required
string
required
applePay
object
Show child attributes
source.applePay
brand
string<enum>
required
American Express,
Discover,
Mastercard,
Visa,
Unknown
cardDisplayName
string
required
User-friendly name of the tokenized card returned by Apple.
It usually contains the brand and the last four digits of the underlying card. There is no standard format.
cardType
string<enum>
required
debit,
credit,
prepaid,
unknown
dynamicLastFour
string
required
expiration
object
required
Show child attributes
source.applePay.expiration
month
string
2 characters
required
year
string
2 characters
required
fingerprint
string
<=100 characters
required
issuerCountry
string
bankAccount
object
Show child attributes
source.bankAccount
bankAccountID
string
required
bankAccountType
string<enum>
required
checking,
savings,
general-ledger,
loan
bankName
string
required
fingerprint
string
<=100 characters
required
Once the bank account is linked, we don't reveal the full bank account number.
The fingerprint acts as a way to identify whether two linked bank accounts are the same.
holderName
string
required
holderType
string<enum>
required
individual,
business,
guest
lastFourAccountNumber
string
required
routingNumber
string
required
status
string<enum>
required
new,
verified,
verificationFailed,
pending,
errored
updatedOn
string<date-time>
required
riskVerificationOutcome
string
notAttempted when
requestRiskVerification was not set, or the calling account was not allowlisted.
notAttempted,
success,
inconclusive,
decline
card
object
Show child attributes
source.card
billingAddress
object
required
Show child attributes
source.card.billingAddress
addressLine1
string
<=60 characters
addressLine2
string
<=32 characters
city
string
<=32 characters
country
string
<=2 characters
postalCode
string
<=10 characters
required
stateOrProvince
string
<=2 characters
bin
string
[6 to 8] characters
required
brand
string<enum>
required
American Express,
Discover,
Mastercard,
Visa,
Unknown
cardID
string
required
cardType
string<enum>
required
debit,
credit,
prepaid,
unknown
cardVerification
object
required
Show child attributes
source.card.cardVerification
addressLine1
string
required
postalCode; the card network returns a single code covering both address fields.
noMatch,
match,
notChecked,
unavailable,
partialMatch
cvv
string
required
noMatch,
match,
notChecked,
unavailable,
partialMatch
postalCode
string
required
addressLine1; the card network returns a single code covering both address fields.
noMatch,
match,
notChecked,
unavailable,
partialMatch
accountName
object
Show child attributes
source.card.cardVerification.accountName
firstName
string
noMatch,
match,
notChecked,
unavailable,
partialMatch
fullName
string
noMatch,
match,
notChecked,
unavailable,
partialMatch
lastName
string
noMatch,
match,
notChecked,
unavailable,
partialMatch
middleName
string
noMatch,
match,
notChecked,
unavailable,
partialMatch
expiration
object
required
Show child attributes
source.card.expiration
month
string
2 characters
required
year
string
2 characters
required
fingerprint
string
<=100 characters
required
lastFourCardNumber
string
4 characters
required
cardAccountUpdater
object
Show child attributes
source.card.cardAccountUpdater
updateType
string<enum>
unspecified,
account-closed,
contact-cardholder,
expiration-update,
no-change,
no-match,
number-update
updatedOn
string<date-time>
cardOnFile
boolean
domesticPullFromCard
string<enum>
not-supported,
supported,
unknown
domesticPushToCard
string<enum>
not-supported,
standard,
fast-funds,
unknown
holderName
string
issuer
string
issuerCountry
string
merchantAccountID
string
googlePay
object
Show child attributes
source.googlePay
brand
string<enum>
required
American Express,
Discover,
Mastercard,
Visa,
Unknown
cardDisplayName
string
required
User-friendly name of the tokenized card returned by Google Pay.
It usually contains the last four digits of the underlying card. There is no standard format.
cardType
string<enum>
required
debit,
credit,
prepaid,
unknown
dynamicLastFour
string
4 characters
required
expiration
object
required
Show child attributes
source.googlePay.expiration
month
string
2 characters
required
year
string
2 characters
required
fingerprint
string
<=100 characters
required
tokenID
string
required
authMethod
string<enum>
PAN_ONLY,
CRYPTOGRAM_3DS
issuerCountry
string
paymentMethodID
string
paymentMethodType
string<enum>
moov-wallet,
ach-debit-fund,
ach-debit-collect,
ach-credit-standard,
ach-credit-same-day,
rtp-credit,
card-payment,
push-to-card,
pull-from-card,
apple-pay,
card-present-payment,
instant-bank-credit,
push-to-apple-pay,
pull-from-apple-pay,
google-pay,
push-to-google-pay,
pull-from-google-pay
terminalCard
object
Show child attributes
source.terminalCard
applicationID
string
applicationName
string
bin
string
[6 to 8] characters
brand
string<enum>
American Express,
Discover,
Mastercard,
Visa,
Unknown
cardType
string<enum>
debit,
credit,
prepaid,
unknown
entryMode
string<enum>
contactless
expiration
object
Show child attributes
source.terminalCard.expiration
month
string
2 characters
required
year
string
2 characters
required
fingerprint
string
<=100 characters
holderName
string
issuer
string
issuerCountry
string
lastFourCardNumber
string
4 characters
transferID
string
wallet
object
Show child attributes
source.wallet
partnerAccountID
string<uuid>
required
walletID
string
required
walletType
string<enum>
required
Type of a wallet.
default: The system-generated wallet automatically created when an account is granted the wallet capability.general: An additional, user-defined wallet created via API or Dashboard.card-issuing: The system-generated wallet automatically created when an account is granted the card-issuing capability.
default,
general,
card-issuing
status
string<enum>
created,
pending,
completed,
failed,
reversed,
queued,
awaiting-capture,
canceled
sweepID
string
transferID
string
transferType
string<enum>
card-payment,
push-to-card,
pull-from-card,
ach-debit,
ach-credit,
ach-debit-to-ach-credit,
instant-bank-credit,
wallet
createdOn
string<date-time>
transferID
string