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.07.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"
},
"amount": {
"currency": "USD"
},
"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",
},
amount: {
currency: "USD",
value: 32945,
},
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',
),
amount: new Components\Amount(
currency: 'USD',
value: 32945,
),
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->createdTransfer !== 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.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(Amount.builder()
.currency("USD")
.value(32945L)
.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.createdTransfer().isPresent()) {
System.out.println(res.createdTransfer().get());
}
}
}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": 32945,
}, facilitator_fee={
"total_decimal": "12.987654321",
"markup_decimal": "0.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'
),
amount: Models::Components::Amount.new(
currency: 'USD',
value: 32_945
),
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.created_transfer.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",
},
Amount = new Amount() {
Currency = "USD",
Value = 32945,
},
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",
"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": {}
},
"cardDetails": {
"status": "confirmed",
"dynamicDescriptor": "WhlBdy *Yoga 11-12",
"confirmedOn": "2025-01-21T21:32:16.799681237Z"
}
},
"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"
}
}
}{
"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",
"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"
},
"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"
]
}
]
}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",
"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"
},
"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"
]
}
]
}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.07.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
value
integer<int64>
required
Quantity in the smallest unit of the specified currency.
In USD this is cents, for example, $12.04 is 1204 and $0.99 is 99.
destination
object
required
Show child attributes
destination
paymentMethodID
string
required
achDetails
object
Show child attributes
destination.achDetails
addenda
array<object>
Show child attributes
destination.achDetails.addenda[]
record
string
<=80 characters
companyEntryDescription
string
[4 to 10] characters
originatingCompanyName
string
[4 to 16] characters
cardDetails
object
Show child attributes
destination.cardDetails
dynamicDescriptor
string
[4 to 22] characters
payoutType
string
loyalty
scheduledDeliveryOn
string<date-time>
source
object
required
paymentMethodID or a transferID.
Show child attributes
source
achDetails
object
Show child attributes
source.achDetails
addenda
array<object>
Show child attributes
source.achDetails.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
cardDetails
object
Show child attributes
source.cardDetails
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
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
integer<int64>
markupDecimal
string
Pattern
markup, but a decimal-formatted numerical string that represents up to 9 decimal place precision.
Only either markup or markupDecimal can be set. Set this field if you expect the fee to be in fractions of a cent.
total
integer<int64>
totalDecimal
string
Pattern
Same as total, but a decimal-formatted numerical string that represents up to 9 decimal place precision.
Only either total or totalDecimal can be set. Set this field if you expect the fee to be in fractions of a cent.
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
Response
createdOn
string<date-time>
required
transferID
string
required
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
value
integer<int64>
required
Quantity in the smallest unit of the specified currency.
In USD this is cents, for example, $12.04 is 1204 and $0.99 is 99.
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'.
cancellations
array<object>
Show child attributes
cancellations[]
cancellationID
string
createdOn
string<date-time>
status
string<enum>
pending,
completed,
failed
capture
object
Show child attributes
capture
authorizationID
string
required
captureID
string
required
completedOn
string<date-time>
description
string
<=128 characters
destination
object
Show child attributes
destination
account
object
required
Show child attributes
destination.account
accountID
string
required
displayName
string
required
string
required
paymentMethodID
string
required
paymentMethodType
string<enum>
required
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
achDetails
object
Show child attributes
destination.achDetails
addenda
array<object>
Show child attributes
destination.achDetails.addenda[]
isMasked
boolean
record
string
<=80 characters
canceledOn
string<date-time>
companyEntryDescription
string
[4 to 10] characters
completedOn
string<date-time>
correctedOn
string<date-time>
correction
object
Show child attributes
destination.achDetails.correction
code
string
description
string
reason
string
debitHoldPeriod
string<enum>
no-hold,
1-day,
2-days
failedOn
string<date-time>
initiatedOn
string<date-time>
originatedOn
string<date-time>
originatingCompanyName
string
[4 to 16] characters
return
object
Show child attributes
destination.achDetails.return
code
string
description
string
reason
string
returnedOn
string<date-time>
secCode
string<enum>
WEB,
PPD,
CCD,
TEL
status
string<enum>
,
initiated,
originated,
corrected,
returned,
completed,
canceled
traceNumber
string
<=15 characters
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
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
cardDetails
object
Show child attributes
destination.cardDetails
authorizationCode
string
canceledOn
string<date-time>
completedOn
string<date-time>
confirmedOn
string<date-time>
deferredOn
string<date-time>
dynamicDescriptor
string
[4 to 22] characters
failedOn
string<date-time>
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,
unknown-issue,
duplicate-transaction
feeProgram
string
initiatedOn
string<date-time>
interchangeQualification
string
deprecated
scheduledDeliveryOn
string<date-time>
settledOn
string<date-time>
status
string<enum>
initiated,
confirmed,
canceled,
settled,
failed,
completed,
cleared-externally,
deferred
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
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
instantBankDetails
object
Show child attributes
destination.instantBankDetails
network
string<enum>
required
fednow,
rtp
status
string<enum>
required
initiated,
completed,
failed,
accepted-without-posting
acceptedWithoutPostingOn
string<date-time>
completedOn
string<date-time>
endToEndID
string
failedOn
string<date-time>
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
initiatedOn
string<date-time>
networkResponseCode
string
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
value
integer<int64>
required
Quantity in the smallest unit of the specified currency.
In USD this is cents, for example, $12.04 is 1204 and $0.99 is 99.
disputes
array<object>
Show child attributes
disputes[]
amount
object
Show child attributes
disputes[].amount
currency
string
required
Pattern
value
integer<int64>
required
Quantity in the smallest unit of the specified currency.
In USD this is cents, for example, $12.04 is 1204 and $0.99 is 99.
createdOn
string<date-time>
disputeID
string
facilitatorFee
object
Show child attributes
facilitatorFee
markup
integer<int64>
markupDecimal
string
Pattern
markup, but a decimal-formatted numerical string that represents up to 9 decimal place precision.
Only either markup or markupDecimal can be set. Set this field if you expect the fee to be in fractions of a cent.
total
integer<int64>
totalDecimal
string
Pattern
Same as total, but a decimal-formatted numerical string that represents up to 9 decimal place precision.
Only either total or totalDecimal can be set. Set this field if you expect the fee to be in fractions of a cent.
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
integer<int64>
moovFeeDecimal
string
moovFee, but a decimal-formatted numerical string that represents up to 9 decimal place precision.
moovFeeDetails
object
Show child attributes
moovFeeDetails
moovProcessing
string
required
cardScheme
string
discount
string
interchange
string
occurrenceID
string
paymentLinkCode
string
refundedAmount
object
Show child attributes
refundedAmount
currency
string
required
Pattern
value
integer<int64>
required
Quantity in the smallest unit of the specified currency.
In USD this is cents, for example, $12.04 is 1204 and $0.99 is 99.
refunds
array<object>
Show child attributes
refunds[]
amount
object
Show child attributes
refunds[].amount
currency
string
required
Pattern
value
integer<int64>
required
Quantity in the smallest unit of the specified currency.
In USD this is cents, for example, $12.04 is 1204 and $0.99 is 99.
amountDetails
object
Show child attributes
refunds[].amountDetails
surcharge
object
Show child attributes
refunds[].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'.
cardDetails
object
Show child attributes
refunds[].cardDetails
status
string<enum>
required
initiated,
confirmed,
settled,
failed,
completed,
cleared-externally
completedOn
string<date-time>
confirmedOn
string<date-time>
failedOn
string<date-time>
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,
unknown-issue,
duplicate-transaction
initiatedOn
string<date-time>
settledOn
string<date-time>
createdOn
string<date-time>
refundID
string
status
string<enum>
created,
pending,
completed,
failed
updatedOn
string<date-time>
scheduleID
string
source
object
Show child attributes
source
account
object
required
Show child attributes
source.account
accountID
string
required
displayName
string
required
string
required
paymentMethodID
string
required
paymentMethodType
string<enum>
required
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
achDetails
object
Show child attributes
source.achDetails
addenda
array<object>
Show child attributes
source.achDetails.addenda[]
isMasked
boolean
record
string
<=80 characters
canceledOn
string<date-time>
companyEntryDescription
string
[4 to 10] characters
completedOn
string<date-time>
correctedOn
string<date-time>
correction
object
Show child attributes
source.achDetails.correction
code
string
description
string
reason
string
debitHoldPeriod
string<enum>
no-hold,
1-day,
2-days
failedOn
string<date-time>
initiatedOn
string<date-time>
originatedOn
string<date-time>
originatingCompanyName
string
[4 to 16] characters
return
object
Show child attributes
source.achDetails.return
code
string
description
string
reason
string
returnedOn
string<date-time>
secCode
string<enum>
WEB,
PPD,
CCD,
TEL
status
string<enum>
,
initiated,
originated,
corrected,
returned,
completed,
canceled
traceNumber
string
<=15 characters
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
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
cardDetails
object
Show child attributes
source.cardDetails
authorizationCode
string
canceledOn
string<date-time>
completedOn
string<date-time>
confirmedOn
string<date-time>
deferredOn
string<date-time>
dynamicDescriptor
string
[4 to 22] characters
failedOn
string<date-time>
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,
unknown-issue,
duplicate-transaction
feeProgram
string
initiatedOn
string<date-time>
interchangeQualification
string
deprecated
scheduledDeliveryOn
string<date-time>
settledOn
string<date-time>
status
string<enum>
initiated,
confirmed,
canceled,
settled,
failed,
completed,
cleared-externally,
deferred
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
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
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,
canceled
sweepID
string