Create a transfer

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

If you are running a server-side integration, you will use your API keys per our authentication guidelines.

If you are running a client-side integration, you’ll need to specify the /accounts/{yourAccountID}/transfers.write scope when generating a token. The accountID included must be your accountID. You can find your accountID on the Business details page.
POST
/transfers
cURL JavaScript
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
curl -X POST "https://api.moov.io/transfers" \
  -H "Authorization: Bearer {token}" \
  -H "X-Idempotency-Key: UUID" \
  -H "X-Wait-For: rail-response" \
  --data-raw '{
    "amount": {
      "value": 100,
      "currency": "USD"
    },
    "destination": {
      "paymentMethodID": "UUID"
    },
    "source": {
      "paymentMethodID": "UUID"
    }
  }'\
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
const moov = new Moov(credentialsObject);

const transfer = await moov.transfers.create({
  amount: {
    value: 100,
    currency: "USD"
  },
  destination: {
    paymentMethodID: "destination-payment-method-id"
  },
  source: {
    paymentMethodID: "source-payment-method-id"
  }
});
200 201 202 400 409 422 429
Successfully created a transfer.
{
  "createdOn": "2019-08-24T14:15:22Z",
  "transferID": "e23de6dd-5168-4e1d-894d-807fa691dc80"
}
A transfer was successfully created but an error occurred while generating the synchronous response. The asynchronous response object will be returned.
{
  "createdOn": "2019-08-24T14:15:22Z",
  "transferID": "e23de6dd-5168-4e1d-894d-807fa691dc80"
}
A transfer was successfully created but a timeout occurred while waiting for a synchronous response. Rail-specific details may be missing from the response object.
{
  "amount": {
    "currency": "USD",
    "value": 1204
  },
  "completedOn": "2019-08-24T14:15:22Z",
  "createdOn": "2019-08-24T14:15:22Z",
  "description": "Pay Instructor for May 15 Class",
  "destination": {
    "account": {
      "accountID": "3dfff852-927d-47e8-822c-2fffc57ff6b9",
      "displayName": "Whole Body Fitness",
      "email": "amanda@classbooker.dev"
    },
    "achDetails": {
      "companyEntryDescription": "Gym Dues",
      "completedOn": "2019-08-24T14:15:22Z",
      "correctedOn": "2019-08-24T14:15:22Z",
      "correction": {
        "code": "string",
        "description": "string",
        "reason": "string"
      },
      "initiatedOn": "2019-08-24T14:15:22Z",
      "originatedOn": "2019-08-24T14:15:22Z",
      "originatingCompanyName": "Whole Body Fit",
      "return": {
        "code": "string",
        "description": "string",
        "reason": "string"
      },
      "returnedOn": "2019-08-24T14:15:22Z",
      "secCode": "WEB",
      "status": "initiated",
      "traceNumber": "124782618117"
    },
    "applePay": {
      "brand": "Discover",
      "cardDisplayName": "Visa 1234",
      "cardType": "debit",
      "dynamicLastFour": "1234",
      "expiration": {
        "month": "01",
        "year": "21"
      },
      "fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3"
    },
    "bankAccount": {
      "bankAccountID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
      "bankAccountType": "checking",
      "bankName": "Chase Bank",
      "exceptionDetails": {
        "achReturnCode": "R02",
        "description": "string",
        "rtpRejectionCode": "AC03 - Account Invalid"
      },
      "fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3",
      "holderName": "Jules Jackson",
      "holderType": "individual",
      "lastFourAccountNumber": "7000",
      "paymentMethods": [
        {
          "paymentMethodID": "9506dbf6-4208-44c3-ad8a-e4431660e1f2",
          "paymentMethodType": "ach-debit-fund"
        },
        {
          "paymentMethodID": "3f9969cf-a1f3-4d83-8ddc-229a506651cf",
          "paymentMethodType": "ach-debit-collect"
        }
      ],
      "routingNumber": "string",
      "status": "new",
      "statusReason": "bank-account-created",
      "updatedOn": "2019-08-24T14:15:22Z"
    },
    "card": {
      "billingAddress": {
        "addressLine1": "123 Main Street",
        "addressLine2": "Apt 302",
        "city": "Boulder",
        "country": "US",
        "postalCode": "80301",
        "stateOrProvince": "CO"
      },
      "bin": "123456",
      "brand": "Discover",
      "cardAccountUpdater": {
        "updateType": "number-update",
        "updatedOn": "2019-08-24T14:15:22Z"
      },
      "cardID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
      "cardOnFile": true,
      "cardType": "debit",
      "cardVerification": {
        "accountName": {
          "firstName": "match",
          "fullName": "match",
          "lastName": "match",
          "middleName": "match"
        },
        "addressLine1": "match",
        "cvv": "match",
        "postalCode": "match"
      },
      "domesticPullFromCard": "supported",
      "domesticPushToCard": "fast-funds",
      "expiration": {
        "month": "01",
        "year": "21"
      },
      "fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3",
      "holderName": "Jules Jackson",
      "issuer": "GRINGOTTS BANK",
      "issuerCountry": "US",
      "lastFourCardNumber": "1234",
      "merchantAccountID": "50469144-f859-46dc-bdbd-9587c2fa7b42",
      "paymentMethods": [
        {
          "paymentMethodID": "9506dbf6-4208-44c3-ad8a-e4431660e1f2",
          "paymentMethodType": "card-payment"
        },
        {
          "paymentMethodID": "3f9969cf-a1f3-4d83-8ddc-229a506651cf",
          "paymentMethodType": "push-to-card"
        }
      ]
    },
    "cardDetails": {
      "canceledOn": "2019-08-24T14:15:22Z",
      "completedOn": "2019-08-24T14:15:22Z",
      "confirmedOn": "2019-08-24T14:15:22Z",
      "dynamicDescriptor": "WhlBdy *Yoga 11-12",
      "failedOn": "2019-08-24T14:15:22Z",
      "failureCode": "call-issuer",
      "feeProgram": "Visa Signature and Visa Infinite (Spend not-qualified) Product 1",
      "initiatedOn": "2019-08-24T14:15:22Z",
      "interchangeQualification": "Visa Signature and Visa Infinite (Spend not-qualified) Product 1",
      "settledOn": "2019-08-24T14:15:22Z",
      "status": "initiated",
      "transactionSource": "first-recurring"
    },
    "paymentMethodID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
    "paymentMethodType": "moov-wallet",
    "rtpDetails": {
      "acceptedWithoutPostingOn": "2019-08-24T14:15:22Z",
      "completedOn": "2019-08-24T14:15:22Z",
      "failedOn": "2019-08-24T14:15:22Z",
      "failureCode": "processing-error",
      "initiatedOn": "2019-08-24T14:15:22Z",
      "networkResponseCode": "string",
      "status": "initiated"
    },
    "wallet": {
      "walletID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43"
    }
  },
  "disputedAmount": {
    "currency": "USD",
    "value": 1204
  },
  "disputes": [
    {
      "amount": {
        "currency": "USD",
        "value": 1204
      },
      "createdOn": "2019-08-24T14:15:22Z",
      "disputeID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43"
    }
  ],
  "facilitatorFee": {
    "markup": 0,
    "markupDecimal": "0.987654321",
    "total": 0,
    "totalDecimal": "12.987654321"
  },
  "failureReason": "wallet-insufficient-funds",
  "groupID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
  "metadata": {
    "property1": "string",
    "property2": "string"
  },
  "moovFee": 0,
  "moovFeeDecimal": "0.987654321",
  "moovFeeDetails": {
    "cardScheme": "string",
    "discount": "string",
    "interchange": "string",
    "moovProcessing": "string"
  },
  "refundedAmount": {
    "currency": "USD",
    "value": 1204
  },
  "refunds": [
    {
      "amount": {
        "currency": "USD",
        "value": 1204
      },
      "cardDetails": {
        "completedOn": "2019-08-24T14:15:22Z",
        "confirmedOn": "2019-08-24T14:15:22Z",
        "failedOn": "2019-08-24T14:15:22Z",
        "failureCode": "call-issuer",
        "initiatedOn": "2019-08-24T14:15:22Z",
        "settledOn": "2019-08-24T14:15:22Z",
        "status": "initiated"
      },
      "createdOn": "2019-08-24T14:15:22Z",
      "failureCode": "call-issuer",
      "refundID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
      "status": "failed",
      "updatedOn": "2019-08-24T14:15:22Z"
    }
  ],
  "source": {
    "account": {
      "accountID": "3dfff852-927d-47e8-822c-2fffc57ff6b9",
      "displayName": "Whole Body Fitness",
      "email": "amanda@classbooker.dev"
    },
    "achDetails": {
      "companyEntryDescription": "Gym Dues",
      "completedOn": "2019-08-24T14:15:22Z",
      "correctedOn": "2019-08-24T14:15:22Z",
      "correction": {
        "code": "string",
        "description": "string",
        "reason": "string"
      },
      "debitHoldPeriod": "2-days",
      "initiatedOn": "2019-08-24T14:15:22Z",
      "originatedOn": "2019-08-24T14:15:22Z",
      "originatingCompanyName": "Whole Body Fit",
      "return": {
        "code": "string",
        "description": "string",
        "reason": "string"
      },
      "returnedOn": "2019-08-24T14:15:22Z",
      "secCode": "WEB",
      "status": "initiated",
      "traceNumber": "124782618117"
    },
    "applePay": {
      "brand": "Discover",
      "cardDisplayName": "Visa 1234",
      "cardType": "debit",
      "dynamicLastFour": "1234",
      "expiration": {
        "month": "01",
        "year": "21"
      },
      "fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3"
    },
    "bankAccount": {
      "bankAccountID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
      "bankAccountType": "checking",
      "bankName": "Chase Bank",
      "exceptionDetails": {
        "achReturnCode": "R02",
        "description": "string",
        "rtpRejectionCode": "AC03 - Account Invalid"
      },
      "fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3",
      "holderName": "Jules Jackson",
      "holderType": "individual",
      "lastFourAccountNumber": "7000",
      "paymentMethods": [
        {
          "paymentMethodID": "9506dbf6-4208-44c3-ad8a-e4431660e1f2",
          "paymentMethodType": "ach-debit-fund"
        },
        {
          "paymentMethodID": "3f9969cf-a1f3-4d83-8ddc-229a506651cf",
          "paymentMethodType": "ach-debit-collect"
        }
      ],
      "routingNumber": "string",
      "status": "new",
      "statusReason": "bank-account-created",
      "updatedOn": "2019-08-24T14:15:22Z"
    },
    "card": {
      "billingAddress": {
        "addressLine1": "123 Main Street",
        "addressLine2": "Apt 302",
        "city": "Boulder",
        "country": "US",
        "postalCode": "80301",
        "stateOrProvince": "CO"
      },
      "bin": "123456",
      "brand": "Discover",
      "cardAccountUpdater": {
        "updateType": "number-update",
        "updatedOn": "2019-08-24T14:15:22Z"
      },
      "cardID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
      "cardOnFile": true,
      "cardType": "debit",
      "cardVerification": {
        "accountName": {
          "firstName": "match",
          "fullName": "match",
          "lastName": "match",
          "middleName": "match"
        },
        "addressLine1": "match",
        "cvv": "match",
        "postalCode": "match"
      },
      "domesticPullFromCard": "supported",
      "domesticPushToCard": "fast-funds",
      "expiration": {
        "month": "01",
        "year": "21"
      },
      "fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3",
      "holderName": "Jules Jackson",
      "issuer": "GRINGOTTS BANK",
      "issuerCountry": "US",
      "lastFourCardNumber": "1234",
      "merchantAccountID": "50469144-f859-46dc-bdbd-9587c2fa7b42",
      "paymentMethods": [
        {
          "paymentMethodID": "9506dbf6-4208-44c3-ad8a-e4431660e1f2",
          "paymentMethodType": "card-payment"
        },
        {
          "paymentMethodID": "3f9969cf-a1f3-4d83-8ddc-229a506651cf",
          "paymentMethodType": "push-to-card"
        }
      ]
    },
    "cardDetails": {
      "canceledOn": "2019-08-24T14:15:22Z",
      "completedOn": "2019-08-24T14:15:22Z",
      "confirmedOn": "2019-08-24T14:15:22Z",
      "dynamicDescriptor": "WhlBdy *Yoga 11-12",
      "failedOn": "2019-08-24T14:15:22Z",
      "failureCode": "call-issuer",
      "feeProgram": "Visa Signature and Visa Infinite (Spend not-qualified) Product 1",
      "initiatedOn": "2019-08-24T14:15:22Z",
      "interchangeQualification": "Visa Signature and Visa Infinite (Spend not-qualified) Product 1",
      "settledOn": "2019-08-24T14:15:22Z",
      "status": "initiated",
      "transactionSource": "first-recurring"
    },
    "paymentMethodID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
    "paymentMethodType": "moov-wallet",
    "transferID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
    "wallet": {
      "walletID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43"
    }
  },
  "status": "pending",
  "transferID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43"
}
Invalid request, an error message will be available in the response body.
Error response for http requests that failed.
{
  "error": "example error message"
}
Attempted to create a transfer using a duplicate X-Idempotency-Key header.
{
  "amount": {
    "currency": "USD",
    "value": 1204
  },
  "completedOn": "2019-08-24T14:15:22Z",
  "createdOn": "2019-08-24T14:15:22Z",
  "description": "Pay Instructor for May 15 Class",
  "destination": {
    "account": {
      "accountID": "3dfff852-927d-47e8-822c-2fffc57ff6b9",
      "displayName": "Whole Body Fitness",
      "email": "amanda@classbooker.dev"
    },
    "achDetails": {
      "companyEntryDescription": "Gym Dues",
      "completedOn": "2019-08-24T14:15:22Z",
      "correctedOn": "2019-08-24T14:15:22Z",
      "correction": {
        "code": "string",
        "description": "string",
        "reason": "string"
      },
      "initiatedOn": "2019-08-24T14:15:22Z",
      "originatedOn": "2019-08-24T14:15:22Z",
      "originatingCompanyName": "Whole Body Fit",
      "return": {
        "code": "string",
        "description": "string",
        "reason": "string"
      },
      "returnedOn": "2019-08-24T14:15:22Z",
      "secCode": "WEB",
      "status": "initiated",
      "traceNumber": "124782618117"
    },
    "applePay": {
      "brand": "Discover",
      "cardDisplayName": "Visa 1234",
      "cardType": "debit",
      "dynamicLastFour": "1234",
      "expiration": {
        "month": "01",
        "year": "21"
      },
      "fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3"
    },
    "bankAccount": {
      "bankAccountID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
      "bankAccountType": "checking",
      "bankName": "Chase Bank",
      "exceptionDetails": {
        "achReturnCode": "R02",
        "description": "string",
        "rtpRejectionCode": "AC03 - Account Invalid"
      },
      "fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3",
      "holderName": "Jules Jackson",
      "holderType": "individual",
      "lastFourAccountNumber": "7000",
      "paymentMethods": [
        {
          "paymentMethodID": "9506dbf6-4208-44c3-ad8a-e4431660e1f2",
          "paymentMethodType": "ach-debit-fund"
        },
        {
          "paymentMethodID": "3f9969cf-a1f3-4d83-8ddc-229a506651cf",
          "paymentMethodType": "ach-debit-collect"
        }
      ],
      "routingNumber": "string",
      "status": "new",
      "statusReason": "bank-account-created",
      "updatedOn": "2019-08-24T14:15:22Z"
    },
    "card": {
      "billingAddress": {
        "addressLine1": "123 Main Street",
        "addressLine2": "Apt 302",
        "city": "Boulder",
        "country": "US",
        "postalCode": "80301",
        "stateOrProvince": "CO"
      },
      "bin": "123456",
      "brand": "Discover",
      "cardAccountUpdater": {
        "updateType": "number-update",
        "updatedOn": "2019-08-24T14:15:22Z"
      },
      "cardID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
      "cardOnFile": true,
      "cardType": "debit",
      "cardVerification": {
        "accountName": {
          "firstName": "match",
          "fullName": "match",
          "lastName": "match",
          "middleName": "match"
        },
        "addressLine1": "match",
        "cvv": "match",
        "postalCode": "match"
      },
      "domesticPullFromCard": "supported",
      "domesticPushToCard": "fast-funds",
      "expiration": {
        "month": "01",
        "year": "21"
      },
      "fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3",
      "holderName": "Jules Jackson",
      "issuer": "GRINGOTTS BANK",
      "issuerCountry": "US",
      "lastFourCardNumber": "1234",
      "merchantAccountID": "50469144-f859-46dc-bdbd-9587c2fa7b42",
      "paymentMethods": [
        {
          "paymentMethodID": "9506dbf6-4208-44c3-ad8a-e4431660e1f2",
          "paymentMethodType": "card-payment"
        },
        {
          "paymentMethodID": "3f9969cf-a1f3-4d83-8ddc-229a506651cf",
          "paymentMethodType": "push-to-card"
        }
      ]
    },
    "cardDetails": {
      "canceledOn": "2019-08-24T14:15:22Z",
      "completedOn": "2019-08-24T14:15:22Z",
      "confirmedOn": "2019-08-24T14:15:22Z",
      "dynamicDescriptor": "WhlBdy *Yoga 11-12",
      "failedOn": "2019-08-24T14:15:22Z",
      "failureCode": "call-issuer",
      "feeProgram": "Visa Signature and Visa Infinite (Spend not-qualified) Product 1",
      "initiatedOn": "2019-08-24T14:15:22Z",
      "interchangeQualification": "Visa Signature and Visa Infinite (Spend not-qualified) Product 1",
      "settledOn": "2019-08-24T14:15:22Z",
      "status": "initiated",
      "transactionSource": "first-recurring"
    },
    "paymentMethodID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
    "paymentMethodType": "moov-wallet",
    "rtpDetails": {
      "acceptedWithoutPostingOn": "2019-08-24T14:15:22Z",
      "completedOn": "2019-08-24T14:15:22Z",
      "failedOn": "2019-08-24T14:15:22Z",
      "failureCode": "processing-error",
      "initiatedOn": "2019-08-24T14:15:22Z",
      "networkResponseCode": "string",
      "status": "initiated"
    },
    "wallet": {
      "walletID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43"
    }
  },
  "disputedAmount": {
    "currency": "USD",
    "value": 1204
  },
  "disputes": [
    {
      "amount": {
        "currency": "USD",
        "value": 1204
      },
      "createdOn": "2019-08-24T14:15:22Z",
      "disputeID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43"
    }
  ],
  "facilitatorFee": {
    "markup": 0,
    "markupDecimal": "0.987654321",
    "total": 0,
    "totalDecimal": "12.987654321"
  },
  "failureReason": "wallet-insufficient-funds",
  "groupID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
  "metadata": {
    "property1": "string",
    "property2": "string"
  },
  "moovFee": 0,
  "moovFeeDecimal": "0.987654321",
  "moovFeeDetails": {
    "cardScheme": "string",
    "discount": "string",
    "interchange": "string",
    "moovProcessing": "string"
  },
  "refundedAmount": {
    "currency": "USD",
    "value": 1204
  },
  "refunds": [
    {
      "amount": {
        "currency": "USD",
        "value": 1204
      },
      "cardDetails": {
        "completedOn": "2019-08-24T14:15:22Z",
        "confirmedOn": "2019-08-24T14:15:22Z",
        "failedOn": "2019-08-24T14:15:22Z",
        "failureCode": "call-issuer",
        "initiatedOn": "2019-08-24T14:15:22Z",
        "settledOn": "2019-08-24T14:15:22Z",
        "status": "initiated"
      },
      "createdOn": "2019-08-24T14:15:22Z",
      "failureCode": "call-issuer",
      "refundID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
      "status": "failed",
      "updatedOn": "2019-08-24T14:15:22Z"
    }
  ],
  "source": {
    "account": {
      "accountID": "3dfff852-927d-47e8-822c-2fffc57ff6b9",
      "displayName": "Whole Body Fitness",
      "email": "amanda@classbooker.dev"
    },
    "achDetails": {
      "companyEntryDescription": "Gym Dues",
      "completedOn": "2019-08-24T14:15:22Z",
      "correctedOn": "2019-08-24T14:15:22Z",
      "correction": {
        "code": "string",
        "description": "string",
        "reason": "string"
      },
      "debitHoldPeriod": "2-days",
      "initiatedOn": "2019-08-24T14:15:22Z",
      "originatedOn": "2019-08-24T14:15:22Z",
      "originatingCompanyName": "Whole Body Fit",
      "return": {
        "code": "string",
        "description": "string",
        "reason": "string"
      },
      "returnedOn": "2019-08-24T14:15:22Z",
      "secCode": "WEB",
      "status": "initiated",
      "traceNumber": "124782618117"
    },
    "applePay": {
      "brand": "Discover",
      "cardDisplayName": "Visa 1234",
      "cardType": "debit",
      "dynamicLastFour": "1234",
      "expiration": {
        "month": "01",
        "year": "21"
      },
      "fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3"
    },
    "bankAccount": {
      "bankAccountID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
      "bankAccountType": "checking",
      "bankName": "Chase Bank",
      "exceptionDetails": {
        "achReturnCode": "R02",
        "description": "string",
        "rtpRejectionCode": "AC03 - Account Invalid"
      },
      "fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3",
      "holderName": "Jules Jackson",
      "holderType": "individual",
      "lastFourAccountNumber": "7000",
      "paymentMethods": [
        {
          "paymentMethodID": "9506dbf6-4208-44c3-ad8a-e4431660e1f2",
          "paymentMethodType": "ach-debit-fund"
        },
        {
          "paymentMethodID": "3f9969cf-a1f3-4d83-8ddc-229a506651cf",
          "paymentMethodType": "ach-debit-collect"
        }
      ],
      "routingNumber": "string",
      "status": "new",
      "statusReason": "bank-account-created",
      "updatedOn": "2019-08-24T14:15:22Z"
    },
    "card": {
      "billingAddress": {
        "addressLine1": "123 Main Street",
        "addressLine2": "Apt 302",
        "city": "Boulder",
        "country": "US",
        "postalCode": "80301",
        "stateOrProvince": "CO"
      },
      "bin": "123456",
      "brand": "Discover",
      "cardAccountUpdater": {
        "updateType": "number-update",
        "updatedOn": "2019-08-24T14:15:22Z"
      },
      "cardID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
      "cardOnFile": true,
      "cardType": "debit",
      "cardVerification": {
        "accountName": {
          "firstName": "match",
          "fullName": "match",
          "lastName": "match",
          "middleName": "match"
        },
        "addressLine1": "match",
        "cvv": "match",
        "postalCode": "match"
      },
      "domesticPullFromCard": "supported",
      "domesticPushToCard": "fast-funds",
      "expiration": {
        "month": "01",
        "year": "21"
      },
      "fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3",
      "holderName": "Jules Jackson",
      "issuer": "GRINGOTTS BANK",
      "issuerCountry": "US",
      "lastFourCardNumber": "1234",
      "merchantAccountID": "50469144-f859-46dc-bdbd-9587c2fa7b42",
      "paymentMethods": [
        {
          "paymentMethodID": "9506dbf6-4208-44c3-ad8a-e4431660e1f2",
          "paymentMethodType": "card-payment"
        },
        {
          "paymentMethodID": "3f9969cf-a1f3-4d83-8ddc-229a506651cf",
          "paymentMethodType": "push-to-card"
        }
      ]
    },
    "cardDetails": {
      "canceledOn": "2019-08-24T14:15:22Z",
      "completedOn": "2019-08-24T14:15:22Z",
      "confirmedOn": "2019-08-24T14:15:22Z",
      "dynamicDescriptor": "WhlBdy *Yoga 11-12",
      "failedOn": "2019-08-24T14:15:22Z",
      "failureCode": "call-issuer",
      "feeProgram": "Visa Signature and Visa Infinite (Spend not-qualified) Product 1",
      "initiatedOn": "2019-08-24T14:15:22Z",
      "interchangeQualification": "Visa Signature and Visa Infinite (Spend not-qualified) Product 1",
      "settledOn": "2019-08-24T14:15:22Z",
      "status": "initiated",
      "transactionSource": "first-recurring"
    },
    "paymentMethodID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
    "paymentMethodType": "moov-wallet",
    "transferID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
    "wallet": {
      "walletID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43"
    }
  },
  "status": "pending",
  "transferID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43"
}
The request body could not be processed.
Request was refused due to rate limiting.

X-Retry-In

string <duration>
How long (in milliseconds) to wait until able to retry the request.

Headers

X-Idempotency-Key

string <uuid> required
Prevents duplicate transfers from being created. Note that we only accept UUID v4.

X-Wait-For

string
Optional header that indicates whether to return a synchronous response that includes full transfer and rail-specific details or an asynchronous response indicating the transfer was created (this is the default response if the header is omitted).
Possible values: rail-response

Body

application/json

amount

object required
A representation of money containing an integer value and its currency.
right_key Show child attributes

currency

string <=3 characters Pattern
A 3-letter ISO 4217 currency code.

value

integer<int64>
Quantity in the smallest unit of the specified currency. In USD this is cents, so $12.04 is 1204 and $0.99 would be 99.

destination

object required
The final stage of a transfer and the ultimate recipient of the funds.
right_key Show child attributes

paymentMethodID

string<uuid> <=36 characters required Pattern
UUID v4

achDetails

object
If transfer involves ACH, override default card acceptance properties.
right_key Show child attributes

companyEntryDescription

string [4 to 10] characters
An optional override of the default NACHA company entry description for a transfer.

originatingCompanyName

string [4 to 16] characters
An optional override of the default NACHA company name for a transfer.

cardDetails

object
If transfer involves card acceptance, override default card acceptance properties.
right_key Show child attributes

dynamicDescriptor

string [4 to 22] characters
An optional override of the default card statement descriptor for a transfer.

source

object required
Where funds for a transfer originate. For the source, you must include either a paymentMethodID or a transferID. A transferID is used to create a transfer group, associating the new transfer with a parent transfer.
right_key Show child attributes

achDetails

object
If transfer involves ACH, override default card acceptance properties.
right_key Show child attributes

companyEntryDescription

string [4 to 10] characters
An optional override of the default NACHA company entry description for a transfer.

originatingCompanyName

string [4 to 16] characters
An optional override of the default NACHA company name for a transfer.

debitHoldPeriod

string
An optional override of your default ACH hold period in banking days. The hold period must be longer than or equal to your default setting.
Possible values: no-hold, 1-day, 2-days

secCode

string
Code used to identify the ACH authorization method.
Possible values: WEB, PPD, CCD, TEL

cardDetails

object
If transfer involves card acceptance, override default card acceptance properties.
right_key Show child attributes

dynamicDescriptor

string [4 to 22] characters
An optional override of the default card statement descriptor for a transfer.

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: Initial transaction in a recurring series or saving a card for future merchant-initiated charges
  • recurring: Regular, merchant-initiated scheduled transactions
  • unscheduled: Non-regular, merchant-initiated transactions like account top-ups
Possible values: first-recurring, recurring, unscheduled

paymentMethodID

string<uuid> <=36 characters Pattern
UUID v4

transferID

string<uuid> <=36 characters Pattern
UUID v4

description

string <=128 characters
An optional description of the transfer for your own internal use.

facilitatorFee

object
Total or markup fee.
right_key Show child attributes

markup

integer<int64>
Markup facilitator fee in cents. Only either markup or markupDecimal can be set.

markupDecimal

string
Same as 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.
A decimal-formatted numerical string that represents up to 9 decimal place precision.

total

integer<int64>
Total facilitator fee in cents. Only either total or totalDecimal can be set.

totalDecimal

string
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.
A decimal-formatted numerical string that represents up to 9 decimal place precision.

metadata

object
Free-form key-value pair list. Useful for storing information that is not captured elsewhere.

Response

application/json
Asynchronous transfer response Synchronous transfer response

createdOn

string<date-time> <=24 characters

transferID

string<uuid> <=36 characters Pattern
Identifier for the transfer.

facilitatorFee

object
Fee you charged your customer for the transfer.
right_key Show child attributes

total

integer<int64> required
Total facilitator fee in cents.

markup

integer<int64>
Markup facilitator fee in cents.

markupDecimal

string
Same as markup, but a decimal-formatted numerical string that represents up to 9 decimal place precision.
A decimal-formatted numerical string that represents up to 9 decimal place precision.

totalDecimal

string
Same as total, but a decimal-formatted numerical string that represents up to 9 decimal place precision.
A decimal-formatted numerical string that represents up to 9 decimal place precision.

moovFeeDetails

object
Processing and pass-through costs that add up to the moovFee.
right_key Show child attributes

moovProcessing

string required
Moov processing fee. String type represents dollars with up to 9 decimal place precision.

cardScheme

string
Card scheme fees accrued during authorization and settlement. String type represents dollars with up to 9 decimal place precision.

discount

string
Network discount fee for American Express. String type represents dollars with up to 9 decimal place precision.

interchange

string
Network interchange fee for Visa, Mastercard, or Discover. String type represents dollars with up to 9 decimal place precision.

amount

object
A representation of money containing an integer value and its currency.
right_key Show child attributes

currency

string <=3 characters Pattern
A 3-letter ISO 4217 currency code.

value

integer<int64>
Quantity in the smallest unit of the specified currency. In USD this is cents, so $12.04 is 1204 and $0.99 would be 99.

completedOn

string<date-time> <=24 characters

createdOn

string<date-time> <=24 characters

description

string <=128 characters
A description of the transfer.

disputedAmount

object
The total disputed amount for a card transfer.
A representation of money containing an integer value and its currency.
right_key Show child attributes

currency

string <=3 characters Pattern
A 3-letter ISO 4217 currency code.

value

integer<int64>
Quantity in the smallest unit of the specified currency. In USD this is cents, so $12.04 is 1204 and $0.99 would be 99.

disputes

array
A list of disputes for a card transfer.
right_key Show child attributes

amount

object
A representation of money containing an integer value and its currency.
right_key Show child attributes

currency

string <=3 characters Pattern
A 3-letter ISO 4217 currency code.

value

integer<int64>
Quantity in the smallest unit of the specified currency. In USD this is cents, so $12.04 is 1204 and $0.99 would be 99.

createdOn

string<date-time> <=24 characters

disputeID

string<uuid> <=36 characters Pattern
UUID v4

failureReason

string<enum>
Reason for a transfer’s failure.
Possible values: source-payment-error, destination-payment-error, wallet-insufficient-funds, rejected-high-risk, processing-error

groupID

string
ID for all transfers associated with a transfer group.
UUID v4

metadata

object
Free-form key-value pair list. Useful for storing information that is not captured elsewhere.

moovFee

integer<int64>
Fees charged to your platform account for transfers.

moovFeeDecimal

string
Same as moovFee, but a decimal-formatted numerical string that represents up to 9 decimal place precision.

refundedAmount

object
The total refunded amount for a card transfer, representing one refunded amount, or multiple partial refunded amounts. Contains an integer value and its currency. See the refunds array for additional details.
A representation of money containing an integer value and its currency.
right_key Show child attributes

currency

string <=3 characters Pattern
A 3-letter ISO 4217 currency code.

value

integer<int64>
Quantity in the smallest unit of the specified currency. In USD this is cents, so $12.04 is 1204 and $0.99 would be 99.

refunds

array
A list of refunds for a card transfer.
right_key Show child attributes

amount

object
A representation of money containing an integer value and its currency.
right_key Show child attributes

currency

string <=3 characters Pattern
A 3-letter ISO 4217 currency code.

value

integer<int64>
Quantity in the smallest unit of the specified currency. In USD this is cents, so $12.04 is 1204 and $0.99 would be 99.

cardDetails

object
right_key Show child attributes

completedOn

string<date-time> <=24 characters

confirmedOn

string<date-time> <=24 characters

failedOn

string<date-time> <=24 characters

failureCode

string<enum>
Possible values: 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> <=24 characters

settledOn

string<date-time> <=24 characters

status

string<enum>
Status of the refund.
Possible values: initiated, confirmed, settled, failed, completed

createdOn

string<date-time> <=24 characters

failureCode

string deprecated
This field is deprecated and will be removed in December 2023.
Possible values: 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

refundID

string<uuid> <=36 characters Pattern
UUID v4

status

string<enum>
Possible values: created, pending, completed, failed

updatedOn

string<date-time> <=24 characters

status

string<enum>
Current status of a transfer.
Possible values: created, pending, completed, failed, reversed, queued, canceled

transferID

string<uuid> <=36 characters Pattern
UUID v4

destination

object
right_key Show child attributes

account

object
right_key Show child attributes

accountID

string<uuid> <=36 characters Pattern
ID of account.

displayName

string <=64 characters

email

string<email> <=255 characters Pattern
Email address.

achDetails

object
ACH specific details about the transaction.
right_key Show child attributes

status

string<enum> required
Status of the ACH lifecycle.
Possible values: initiated, originated, corrected, returned, completed

traceNumber

string <=15 characters required

companyEntryDescription

string [4 to 10] characters
An optional override of the default NACHA company entry description for a transfer.

completedOn

string<date-time> <=24 characters

correctedOn

string<date-time> <=24 characters

correction

object
right_key Show child attributes

code

string

description

string

reason

string

initiatedOn

string<date-time> <=24 characters

originatedOn

string<date-time> <=24 characters

originatingCompanyName

string [4 to 16] characters
An optional override of the default NACHA company name for a transfer.

return

object
right_key Show child attributes

code

string

description

string

reason

string

returnedOn

string<date-time> <=24 characters

secCode

string<enum>
Code used to identify the ACH authorization method.
Possible values: WEB, PPD, CCD, TEL

applePay

object
Describes an Apple Pay token on a Moov account.
right_key Show child attributes

brand

string<enum>
The card brand.
Possible values: American Express, Discover, Mastercard, Visa

cardDisplayName

string
User-friendly name of the tokenized card returned by Apple. It usually contains the brand and the last four digits of the underlying card for example, “Visa 1256”. There is no standard format.

cardType

string<enum>
The type of the card.
Possible values: debit, credit, prepaid, unknown

dynamicLastFour

string
The last four digits of the Apple Pay token, which may differ from the tokenized card’s last four digits

expiration

object
The expiration date of the card or token.
right_key Show child attributes

month

string 2 characters

year

string 2 characters

fingerprint

string <=100 characters
Uniquely identifies a linked payment card or token. For Apple Pay, the fingerprint is based on the tokenized card number and may vary based on the user’s device. This field can be used to identify specific payment methods across multiple accounts on your platform.

bankAccount

object
Describes a bank account on a Moov account.
right_key Show child attributes

bankAccountID

string<uuid> <=36 characters Pattern
UUID v4

bankAccountType

string<enum>
The bank account type.
Possible values: checking, savings, unknown

bankName

string

exceptionDetails

object
Reason for, and details related to, an errored or verificationFailed bank account status.
right_key Show child attributes

achReturnCode

string<enum>
The return code of an ACH transaction that caused the bank account status to change.
Possible values: R02, R03, R04, R05, R07, R08, R10, R11, R12, R13, R14, R15, R16, R17, R20, R23, R29, R34, R38, R39

description

string
Details related to an errored or verificationFailed bank account status.

rtpRejectionCode

string<enum>
The rejection code of an RTP transaction that caused the bank account status to change.
Possible values: AC03 - Account Invalid, AC04 - Account Closed, AC06 - Account Blocked, AC14 - Creditor Account Type Invalid, AG01 - Transactions Forbidden On Account, AG03 - Transaction Type Not Supported, MD07 - Customer Deceased

fingerprint

string <=100 characters
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

holderType

string<enum>
The type of holder on a funding source.
Possible values: individual, business

lastFourAccountNumber

string

paymentMethods

array

Includes any payment methods generated for a newly created bank account, removing the need to call the List Payment Methods endpoint following a successful Create BankAccount request.

NOTE: This field is only populated for Create BankAccount requests made with the X-Wait-For header.

right_key Show child attributes

paymentMethodID

string<uuid> <=36 characters Pattern
UUID v4

paymentMethodType

string<enum>
The payment method type that represents a payment rail and directionality
Possible values: moov-wallet, ach-debit-fund, ach-debit-collect, ach-credit-standard, ach-credit-same-day, rtp-credit, card-payment, apple-pay, push-to-card, pull-from-card

routingNumber

string

status

string<enum>
The bank account status.
Possible values: new, verified, verificationFailed, pending, errored

statusReason

string<enum>
The reason the bank account status changed to the current value.
Possible values: bank-account-created, verification-initiated, micro-deposit-attempts-exceeded, micro-deposit-expired, max-verification-failures, verification-successful, ach-debit-return, ach-credit-return, rtp-credit-failure, micro-deposit-return, admin-action, other

updatedOn

string<date-time> <=24 characters

card

object
Describes a card on a Moov account.
right_key Show child attributes

billingAddress

object
right_key Show child attributes

addressLine1

string <=60 characters required

city

string <=24 characters required

country

string <=2 characters required

postalCode

string <=5 characters required

stateOrProvince

string <=2 characters required

addressLine2

string <=32 characters

bin

string

brand

string
The card brand.
Possible values: American Express, Discover, Mastercard, Visa

cardAccountUpdater

object
The results of the most recent card update request.
right_key Show child attributes

updateType

string<enum>
The results of the card update request.
Possible values: unspecified, account-closed, contact-cardholder, expiration-update, no-change, no-match, number-update

updatedOn

string<date-time> <=24 characters

cardID

string<uuid> <=36 characters Pattern
UUID v4

cardOnFile

boolean
Indicates cardholder has authorized card to be stored for future payments.

cardType

string<enum>
The type of the card.
Possible values: debit, credit, prepaid, unknown

cardVerification

object
The results of submitting cardholder data to a card network for verification.
right_key Show child attributes

accountName

object
The results of submitting cardholder name to a card network for verification.
right_key Show child attributes

firstName

string
Possible values: noMatch, match, notChecked, unavailable, partialMatch

fullName

string
Possible values: noMatch, match, notChecked, unavailable, partialMatch

lastName

string
Possible values: noMatch, match, notChecked, unavailable, partialMatch

middleName

string
Possible values: noMatch, match, notChecked, unavailable, partialMatch

addressLine1

string
Possible values: noMatch, match, notChecked, unavailable, partialMatch

cvv

string
Possible values: noMatch, match, notChecked, unavailable, partialMatch

postalCode

string
Possible values: noMatch, match, notChecked, unavailable, partialMatch

domesticPullFromCard

string
Indicates if the card supports domestic pull-from-card transfer.
Possible values: not-supported, supported, unknown

domesticPushToCard

string
Indicates which level of domestic push-to-card transfer is supported by the card, if any.
Possible values: not-supported, standard, fast-funds, unknown

expiration

object
The expiration date of the card or token.
right_key Show child attributes

month

string 2 characters

year

string 2 characters

fingerprint

string <=100 characters
Uniquely identifies a linked payment card or token. For Apple Pay, the fingerprint is based on the tokenized card number and may vary based on the user’s device. This field can be used to identify specific payment methods across multiple accounts on your platform.

holderName

string

issuer

string

issuerCountry

string

lastFourCardNumber

string

merchantAccountID

string<uuid> <=36 characters Pattern
ID of the Moov account acting as a merchant or other entity authorized to store the card. Defaults to your platform account ID if cardOnFile is set to true and no other account is provided.

paymentMethods

array

Includes any payment methods generated for a newly linked card, removing the need to call the List Payment Methods endpoint following a successful Link Card request.

NOTE: This field is only populated for Link Card requests made with the X-Wait-For header.

right_key Show child attributes

paymentMethodID

string<uuid> <=36 characters Pattern
UUID v4

paymentMethodType

string<enum>
The payment method type that represents a payment rail and directionality
Possible values: moov-wallet, ach-debit-fund, ach-debit-collect, ach-credit-standard, ach-credit-same-day, rtp-credit, card-payment, apple-pay, push-to-card, pull-from-card

cardDetails

object
Card-specific details about the transaction.
right_key Show child attributes

status

string<enum> required
Status for card payment lifecycle.
Possible values: initiated, confirmed, canceled, settled, failed, completed

canceledOn

string<date-time> <=24 characters

completedOn

string<date-time> <=24 characters

confirmedOn

string<date-time> <=24 characters

dynamicDescriptor

string [4 to 22] characters
An optional override of the default card statement descriptor for a transfer.

failedOn

string<date-time> <=24 characters

failureCode

string<enum>
Possible values: 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
The program assigned by the card network that determines the interchange rate for the transfer.

initiatedOn

string<date-time> <=24 characters

interchangeQualification

string deprecated
DEPRECATED - The program assigned by the card network that determines the interchange rate for the transfer.

settledOn

string<date-time> <=24 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: Initial transaction in a recurring series or saving a card for future merchant-initiated charges
  • recurring: Regular, merchant-initiated scheduled transactions
  • unscheduled: Non-regular, merchant-initiated transactions like account top-ups
Possible values: first-recurring, recurring, unscheduled

paymentMethodID

string<uuid> <=36 characters Pattern
UUID v4

paymentMethodType

string<enum>
The payment method type that represents a payment rail and directionality
Possible values: moov-wallet, ach-debit-fund, ach-debit-collect, ach-credit-standard, ach-credit-same-day, rtp-credit, card-payment, apple-pay, push-to-card, pull-from-card

wallet

object
A Moov wallet to store funds for transfers.
right_key Show child attributes

walletID

string<uuid> <=36 characters Pattern
UUID v4

rtpDetails

object
RTP specific details about the transaction.
right_key Show child attributes

status

string<enum> required
Status of the RTP lifecycle.
Possible values: initiated, completed, failed, accepted-without-posting

acceptedWithoutPostingOn

string<date-time> <=24 characters

completedOn

string<date-time> <=24 characters

failedOn

string<date-time> <=24 characters

failureCode

string<enum>
Status codes for RTP failures.
Possible values: processing-error, invalid-account, account-closed, account-blocked, invalid-field, transaction-not-supported, limit-exceeded, invalid-amount, customer-deceased, other

initiatedOn

string<date-time> <=24 characters

networkResponseCode

string
Code returned by rail network on failure.

source

object
right_key Show child attributes

account

object
right_key Show child attributes

accountID

string<uuid> <=36 characters Pattern
ID of account.

displayName

string <=64 characters

email

string<email> <=255 characters Pattern
Email address.

achDetails

object
ACH specific details about the transaction.
right_key Show child attributes

status

string<enum> required
Status of the ACH lifecycle.
Possible values: initiated, originated, corrected, returned, completed

traceNumber

string <=15 characters required

companyEntryDescription

string [4 to 10] characters
An optional override of the default NACHA company entry description for a transfer.

completedOn

string<date-time> <=24 characters

correctedOn

string<date-time> <=24 characters

correction

object
right_key Show child attributes

code

string

description

string

reason

string

initiatedOn

string<date-time> <=24 characters

originatedOn

string<date-time> <=24 characters

originatingCompanyName

string [4 to 16] characters
An optional override of the default NACHA company name for a transfer.

return

object
right_key Show child attributes

code

string

description

string

reason

string

returnedOn

string<date-time> <=24 characters

secCode

string<enum>
Code used to identify the ACH authorization method.
Possible values: WEB, PPD, CCD, TEL

applePay

object
Describes an Apple Pay token on a Moov account.
right_key Show child attributes

brand

string<enum>
The card brand.
Possible values: American Express, Discover, Mastercard, Visa

cardDisplayName

string
User-friendly name of the tokenized card returned by Apple. It usually contains the brand and the last four digits of the underlying card for example, “Visa 1256”. There is no standard format.

cardType

string<enum>
The type of the card.
Possible values: debit, credit, prepaid, unknown

dynamicLastFour

string
The last four digits of the Apple Pay token, which may differ from the tokenized card’s last four digits

expiration

object
The expiration date of the card or token.
right_key Show child attributes

month

string 2 characters

year

string 2 characters

fingerprint

string <=100 characters
Uniquely identifies a linked payment card or token. For Apple Pay, the fingerprint is based on the tokenized card number and may vary based on the user’s device. This field can be used to identify specific payment methods across multiple accounts on your platform.

bankAccount

object
Describes a bank account on a Moov account.
right_key Show child attributes

bankAccountID

string<uuid> <=36 characters Pattern
UUID v4

bankAccountType

string<enum>
The bank account type.
Possible values: checking, savings, unknown

bankName

string

exceptionDetails

object
Reason for, and details related to, an errored or verificationFailed bank account status.
right_key Show child attributes

achReturnCode

string<enum>
The return code of an ACH transaction that caused the bank account status to change.
Possible values: R02, R03, R04, R05, R07, R08, R10, R11, R12, R13, R14, R15, R16, R17, R20, R23, R29, R34, R38, R39

description

string
Details related to an errored or verificationFailed bank account status.

rtpRejectionCode

string<enum>
The rejection code of an RTP transaction that caused the bank account status to change.
Possible values: AC03 - Account Invalid, AC04 - Account Closed, AC06 - Account Blocked, AC14 - Creditor Account Type Invalid, AG01 - Transactions Forbidden On Account, AG03 - Transaction Type Not Supported, MD07 - Customer Deceased

fingerprint

string <=100 characters
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

holderType

string<enum>
The type of holder on a funding source.
Possible values: individual, business

lastFourAccountNumber

string

paymentMethods

array

Includes any payment methods generated for a newly created bank account, removing the need to call the List Payment Methods endpoint following a successful Create BankAccount request.

NOTE: This field is only populated for Create BankAccount requests made with the X-Wait-For header.

right_key Show child attributes

paymentMethodID

string<uuid> <=36 characters Pattern
UUID v4

paymentMethodType

string<enum>
The payment method type that represents a payment rail and directionality
Possible values: moov-wallet, ach-debit-fund, ach-debit-collect, ach-credit-standard, ach-credit-same-day, rtp-credit, card-payment, apple-pay, push-to-card, pull-from-card

routingNumber

string

status

string<enum>
The bank account status.
Possible values: new, verified, verificationFailed, pending, errored

statusReason

string<enum>
The reason the bank account status changed to the current value.
Possible values: bank-account-created, verification-initiated, micro-deposit-attempts-exceeded, micro-deposit-expired, max-verification-failures, verification-successful, ach-debit-return, ach-credit-return, rtp-credit-failure, micro-deposit-return, admin-action, other

updatedOn

string<date-time> <=24 characters

card

object
Describes a card on a Moov account.
right_key Show child attributes

billingAddress

object
right_key Show child attributes

addressLine1

string <=60 characters required

city

string <=24 characters required

country

string <=2 characters required

postalCode

string <=5 characters required

stateOrProvince

string <=2 characters required

addressLine2

string <=32 characters

bin

string

brand

string
The card brand.
Possible values: American Express, Discover, Mastercard, Visa

cardAccountUpdater

object
The results of the most recent card update request.
right_key Show child attributes

updateType

string<enum>
The results of the card update request.
Possible values: unspecified, account-closed, contact-cardholder, expiration-update, no-change, no-match, number-update

updatedOn

string<date-time> <=24 characters

cardID

string<uuid> <=36 characters Pattern
UUID v4

cardOnFile

boolean
Indicates cardholder has authorized card to be stored for future payments.

cardType

string<enum>
The type of the card.
Possible values: debit, credit, prepaid, unknown

cardVerification

object
The results of submitting cardholder data to a card network for verification.
right_key Show child attributes

accountName

object
The results of submitting cardholder name to a card network for verification.
right_key Show child attributes

firstName

string
Possible values: noMatch, match, notChecked, unavailable, partialMatch

fullName

string
Possible values: noMatch, match, notChecked, unavailable, partialMatch

lastName

string
Possible values: noMatch, match, notChecked, unavailable, partialMatch

middleName

string
Possible values: noMatch, match, notChecked, unavailable, partialMatch

addressLine1

string
Possible values: noMatch, match, notChecked, unavailable, partialMatch

cvv

string
Possible values: noMatch, match, notChecked, unavailable, partialMatch

postalCode

string
Possible values: noMatch, match, notChecked, unavailable, partialMatch

domesticPullFromCard

string
Indicates if the card supports domestic pull-from-card transfer.
Possible values: not-supported, supported, unknown

domesticPushToCard

string
Indicates which level of domestic push-to-card transfer is supported by the card, if any.
Possible values: not-supported, standard, fast-funds, unknown

expiration

object
The expiration date of the card or token.
right_key Show child attributes

month

string 2 characters

year

string 2 characters

fingerprint

string <=100 characters
Uniquely identifies a linked payment card or token. For Apple Pay, the fingerprint is based on the tokenized card number and may vary based on the user’s device. This field can be used to identify specific payment methods across multiple accounts on your platform.

holderName

string

issuer

string

issuerCountry

string

lastFourCardNumber

string

merchantAccountID

string<uuid> <=36 characters Pattern
ID of the Moov account acting as a merchant or other entity authorized to store the card. Defaults to your platform account ID if cardOnFile is set to true and no other account is provided.

paymentMethods

array

Includes any payment methods generated for a newly linked card, removing the need to call the List Payment Methods endpoint following a successful Link Card request.

NOTE: This field is only populated for Link Card requests made with the X-Wait-For header.

right_key Show child attributes

paymentMethodID

string<uuid> <=36 characters Pattern
UUID v4

paymentMethodType

string<enum>
The payment method type that represents a payment rail and directionality
Possible values: moov-wallet, ach-debit-fund, ach-debit-collect, ach-credit-standard, ach-credit-same-day, rtp-credit, card-payment, apple-pay, push-to-card, pull-from-card

cardDetails

object
Card-specific details about the transaction.
right_key Show child attributes

status

string<enum> required
Status for card payment lifecycle.
Possible values: initiated, confirmed, canceled, settled, failed, completed

canceledOn

string<date-time> <=24 characters

completedOn

string<date-time> <=24 characters

confirmedOn

string<date-time> <=24 characters

dynamicDescriptor

string [4 to 22] characters
An optional override of the default card statement descriptor for a transfer.

failedOn

string<date-time> <=24 characters

failureCode

string<enum>
Possible values: 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
The program assigned by the card network that determines the interchange rate for the transfer.

initiatedOn

string<date-time> <=24 characters

interchangeQualification

string deprecated
DEPRECATED - The program assigned by the card network that determines the interchange rate for the transfer.

settledOn

string<date-time> <=24 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: Initial transaction in a recurring series or saving a card for future merchant-initiated charges
  • recurring: Regular, merchant-initiated scheduled transactions
  • unscheduled: Non-regular, merchant-initiated transactions like account top-ups
Possible values: first-recurring, recurring, unscheduled

paymentMethodID

string<uuid> <=36 characters Pattern
UUID v4

paymentMethodType

string<enum>
The payment method type that represents a payment rail and directionality
Possible values: moov-wallet, ach-debit-fund, ach-debit-collect, ach-credit-standard, ach-credit-same-day, rtp-credit, card-payment, apple-pay, push-to-card, pull-from-card

wallet

object
A Moov wallet to store funds for transfers.
right_key Show child attributes

walletID

string<uuid> <=36 characters Pattern
UUID v4

achDetails

object
ACH specific details about the transaction.
right_key Show child attributes

companyEntryDescription

string [4 to 10] characters
An optional override of the default NACHA company entry description for a transfer.

completedOn

string<date-time> <=24 characters

correctedOn

string<date-time> <=24 characters

correction

object
right_key Show child attributes

code

string

description

string

reason

string

initiatedOn

string<date-time> <=24 characters

originatedOn

string<date-time> <=24 characters

originatingCompanyName

string [4 to 16] characters
An optional override of the default NACHA company name for a transfer.

return

object
right_key Show child attributes

code

string

description

string

reason

string

returnedOn

string<date-time> <=24 characters

secCode

string<enum>
Code used to identify the ACH authorization method.
Possible values: WEB, PPD, CCD, TEL

status

string<enum> required
Status of the ACH lifecycle.
Possible values: initiated, originated, corrected, returned, completed

traceNumber

string <=15 characters required

debitHoldPeriod

string<enum><enum>
An optional override of your default ACH hold period in banking days. The hold period must be longer than or equal to your default setting.
Possible values: no-hold, 1-day, 2-days

transferID

string<uuid> <=36 characters Pattern
UUID v4