Moov · Schema

CreatedTransfer

BankingEmbedded FinanceFinancial InfrastructureMoney MovementPaymentsTransfers

Properties

Name Type Description
transferID string
createdOn string
source object
destination object
completedOn string
status object
failureReason object
amount object Amount associated with this transfer. In v2026.10 and later, an auth-capture `card-payment` transfer reports the approved authorization amount until a final capture is created. For these transfers, wh
description string An optional description of the transfer that is used on receipts and for your own internal use.
metadata object
facilitatorFee object
moovFee integer 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.
moovFeeDetails object
groupID string
cancellations array
refundedAmount object
refunds array
disputedAmount object
disputes array
sweepID string
scheduleID string
occurrenceID string
paymentLinkCode string
salesTaxAmount object Optional sales tax amount.
foreignID string Optional alias from a foreign/external system which can be used to reference this resource.
lineItems object
capture object
View JSON Schema on GitHub

JSON Schema

moov-created-transfer-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/moov/main/json-schema/moov-created-transfer-schema.json",
  "title": "CreatedTransfer",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/moov-openapi.yml#/components/schemas/CreatedTransfer",
  "type": "object",
  "required": [
    "transferID",
    "createdOn"
  ],
  "properties": {
    "transferID": {
      "type": "string"
    },
    "createdOn": {
      "type": "string",
      "format": "date-time"
    },
    "source": {
      "$ref": "#/$defs/TransferSource"
    },
    "destination": {
      "$ref": "#/$defs/TransferDestination"
    },
    "completedOn": {
      "type": "string",
      "format": "date-time"
    },
    "status": {
      "$ref": "#/$defs/TransferStatus"
    },
    "failureReason": {
      "$ref": "#/$defs/TransferFailureReason"
    },
    "amount": {
      "allOf": [
        {
          "$ref": "#/$defs/Amount"
        }
      ],
      "description": "Amount associated with this transfer.\nIn v2026.10 and later, an auth-capture `card-payment` transfer reports the approved authorization amount until a final capture is created.\nFor these transfers, when a final capture is created, this is updated to the cumulative captured amount.\nFor other transfer types, this is the transfer amount."
    },
    "description": {
      "type": "string",
      "maxLength": 128,
      "description": "An optional description of the transfer that is used on receipts and for your own internal use."
    },
    "metadata": {
      "$ref": "#/$defs/Metadata"
    },
    "facilitatorFee": {
      "$ref": "#/$defs/FacilitatorFee"
    },
    "moovFee": {
      "type": "integer",
      "format": "int64",
      "description": "Fees charged to your platform account for transfers."
    },
    "moovFeeDecimal": {
      "type": "string",
      "description": "Same as `moovFee`, but a decimal-formatted numerical string that represents up to 9 decimal place precision."
    },
    "moovFeeDetails": {
      "$ref": "#/$defs/MoovFeeDetails"
    },
    "groupID": {
      "type": "string"
    },
    "cancellations": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Cancellation"
      }
    },
    "refundedAmount": {
      "$ref": "#/$defs/Amount"
    },
    "refunds": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/CardAcquiringRefund"
      }
    },
    "disputedAmount": {
      "$ref": "#/$defs/Amount"
    },
    "disputes": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/CardAcquiringDispute"
      }
    },
    "sweepID": {
      "type": "string"
    },
    "scheduleID": {
      "type": "string"
    },
    "occurrenceID": {
      "type": "string"
    },
    "paymentLinkCode": {
      "type": "string"
    },
    "salesTaxAmount": {
      "allOf": [
        {
          "$ref": "#/$defs/Amount"
        }
      ],
      "description": "Optional sales tax amount."
    },
    "foreignID": {
      "type": "string",
      "description": "Optional alias from a foreign/external system which can be used to reference this resource."
    },
    "lineItems": {
      "$ref": "#/$defs/TransferLineItems"
    },
    "capture": {
      "$ref": "#/$defs/TransferCapture"
    }
  },
  "$defs": {
    "ACHCompanyEntryDescription": {
      "type": "string",
      "minLength": 4,
      "maxLength": 10,
      "description": "An optional override of the default NACHA company entry description for a transfer."
    },
    "ACHException": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        },
        "description": {
          "type": "string"
        }
      }
    },
    "ACHOriginatingCompanyName": {
      "type": "string",
      "minLength": 4,
      "maxLength": 16,
      "description": "An optional override of the default NACHA company name for a transfer."
    },
    "ACHTransactionDetails": {
      "type": "object",
      "properties": {
        "status": {
          "$ref": "#/$defs/ACHTransactionStatus"
        },
        "traceNumber": {
          "type": "string",
          "maxLength": 15
        },
        "return": {
          "$ref": "#/$defs/ACHException"
        },
        "correction": {
          "$ref": "#/$defs/ACHException"
        },
        "companyEntryDescription": {
          "$ref": "#/$defs/ACHCompanyEntryDescription"
        },
        "originatingCompanyName": {
          "$ref": "#/$defs/ACHOriginatingCompanyName"
        },
        "secCode": {
          "$ref": "#/$defs/SECCode"
        },
        "canceledOn": {
          "type": "string",
          "format": "date-time"
        },
        "initiatedOn": {
          "type": "string",
          "format": "date-time"
        },
        "originatedOn": {
          "type": "string",
          "format": "date-time"
        },
        "correctedOn": {
          "type": "string",
          "format": "date-time"
        },
        "returnedOn": {
          "type": "string",
          "format": "date-time"
        },
        "failedOn": {
          "type": "string",
          "format": "date-time"
        },
        "completedOn": {
          "type": "string",
          "format": "date-time"
        },
        "debitHoldPeriod": {
          "$ref": "#/$defs/DebitHoldPeriod"
        },
        "addenda": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/TransferACHAddendaRecord"
          }
        }
      },
      "description": "ACH specific details about the transaction."
    },
    "ACHTransactionStatus": {
      "type": "string",
      "enum": [
        "",
        "initiated",
        "originated",
        "corrected",
        "returned",
        "completed",
        "canceled"
      ],
      "description": "Status of a transaction within the ACH lifecycle."
    },
    "AccountNameVerification": {
      "type": "object",
      "properties": {
        "firstName": {
          "allOf": [
            {
              "$ref": "#/$defs/CardVerificationResult"
            }
          ],
          "description": "Verification result of the cardholder's first name."
        },
        "lastName": {
          "allOf": [
            {
              "$ref": "#/$defs/CardVerificationResult"
            }
          ],
          "description": "Verification result of the cardholder's last name."
        },
        "middleName": {
          "allOf": [
            {
              "$ref": "#/$defs/CardVerificationResult"
            }
          ],
          "description": "Verification result of the cardholder's middle name."
        },
        "fullName": {
          "allOf": [
            {
              "$ref": "#/$defs/CardVerificationResult"
            }
          ],
          "description": "Verification result of the cardholder's full name."
        }
      },
      "description": "The results of submitting cardholder name to a card network for verification."
    },
    "Amount": {
      "type": "object",
      "required": [
        "currency",
        "value"
      ],
      "properties": {
        "currency": {
          "$ref": "#/$defs/Currency"
        },
        "value": {
          "type": "integer",
          "format": "int64",
          "description": "Quantity in the smallest unit of the specified currency. \n\nIn USD this is cents, for example, $12.04 is 1204 and $0.99 is 99."
        }
      }
    },
    "AmountDecimal": {
      "type": "object",
      "required": [
        "currency",
        "valueDecimal"
      ],
      "properties": {
        "currency": {
          "$ref": "#/$defs/Currency"
        },
        "valueDecimal": {
          "type": "string",
          "pattern": "^\\d+\\.\\d{1,9}$",
          "description": "A decimal-formatted numerical string that represents up to 9 decimal place precision. \n\nFor example, $12.987654321 is '12.987654321'."
        }
      }
    },
    "ApplePayResponse": {
      "type": "object",
      "required": [
        "brand",
        "cardType",
        "cardDisplayName",
        "fingerprint",
        "expiration",
        "dynamicLastFour"
      ],
      "properties": {
        "brand": {
          "$ref": "#/$defs/CardBrand"
        },
        "cardType": {
          "$ref": "#/$defs/CardType"
        },
        "cardDisplayName": {
          "type": "string",
          "description": "  User-friendly name of the tokenized card returned by Apple.\n  \n  It usually contains the brand and the last four digits of the underlying card.\n  There is no standard format."
        },
        "fingerprint": {
          "$ref": "#/$defs/CardFingerprint"
        },
        "expiration": {
          "$ref": "#/$defs/CardExpiration"
        },
        "dynamicLastFour": {
          "type": "string",
          "description": "The last four digits of the Apple Pay token, which may differ from the tokenized card's last four digits."
        },
        "issuerCountry": {
          "type": "string",
          "description": "Country where the underlying card was issued."
        }
      },
      "description": "Describes an Apple Pay token on a Moov account."
    },
    "BankAccountHolderType": {
      "type": "string",
      "enum": [
        "individual",
        "business",
        "guest"
      ],
      "description": "The type of holder on a funding source."
    },
    "BankAccountStatus": {
      "type": "string",
      "enum": [
        "new",
        "verified",
        "verificationFailed",
        "pending",
        "errored"
      ]
    },
    "BankAccountType": {
      "type": "string",
      "enum": [
        "checking",
        "savings",
        "general-ledger",
        "loan"
      ],
      "description": "The bank account type."
    },
    "Cancellation": {
      "type": "object",
      "required": [
        "cancellationID",
        "status",
        "createdOn"
      ],
      "properties": {
        "cancellationID": {
          "type": "string"
        },
        "status": {
          "$ref": "#/$defs/CancellationStatus"
        },
        "createdOn": {
          "type": "string",
          "format": "date-time"
        }
      },
      "description": "Cancellation of a transfer."
    },
    "CancellationStatus": {
      "type": "string",
      "enum": [
        "pending",
        "completed",
        "failed"
      ]
    },
    "CardAccountUpdater": {
      "type": "object",
      "properties": {
        "updatedOn": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp from the card network indicating when the card update was processed."
        },
        "updateType": {
          "$ref": "#/$defs/CardUpdateReason"
        }
      },
      "description": "The results of the most recent card update request."
    },
    "CardAcquiringDispute": {
      "type": "object",
      "required": [
        "disputeID",
        "createdOn",
        "amount"
      ],
      "properties": {
        "disputeID": {
          "type": "string"
        },
        "createdOn": {
          "type": "string",
          "format": "date-time"
        },
        "amount": {
          "$ref": "#/$defs/Amount"
        }
      },
      "description": "Details of a card dispute."
    },
    "CardAcquiringRefund": {
      "type": "object",
      "required": [
        "refundID",
        "createdOn",
        "updatedOn",
        "status",
        "amount"
      ],
      "properties": {
        "refundID": {
          "type": "string",
          "description": "Identifier for the refund."
        },
        "createdOn": {
          "type": "string",
          "format": "date-time"
        },
        "updatedOn": {
          "type": "string",
          "format": "date-time"
        },
        "status": {
          "$ref": "#/$defs/RefundStatus"
        },
        "amount": {
          "$ref": "#/$defs/Amount"
        },
        "cardDetails": {
          "$ref": "#/$defs/RefundCardDetails"
        }
      },
      "description": "Details of a card refund.",
      "title": "Sync"
    },
    "CardAddress": {
      "type": "object",
      "required": [
        "postalCode"
      ],
      "properties": {
        "addressLine1": {
          "type": "string",
          "maxLength": 60,
          "description": "Street address line 1."
        },
        "addressLine2": {
          "type": "string",
          "maxLength": 32,
          "description": "Street address line 2 (e.g., apartment or suite number)."
        },
        "city": {
          "type": "string",
          "maxLength": 32,
          "description": "City name."
        },
        "stateOrProvince": {
          "type": "string",
          "maxLength": 2,
          "description": "Two-letter state or province code."
        },
        "postalCode": {
          "type": "string",
          "maxLength": 10,
          "description": "Postal or ZIP code."
        },
        "country": {
          "type": "string",
          "maxLength": 2,
          "description": "Two-letter ISO 3166-1 country code."
        }
      }
    },
    "CardBrand": {
      "type": "string",
      "enum": [
        "American Express",
        "Discover",
        "Mastercard",
        "Visa",
        "Unknown"
      ],
      "description": "The card brand."
    },
    "CardDynamicDescriptor": {
      "type": "string",
      "minLength": 4,
      "maxLength": 22,
      "description": "An optional override of the default card statement descriptor for a transfer. Accounts must be enabled by Moov to set this field."
    },
    "CardExpiration": {
      "type": "object",
      "required": [
        "month",
        "year"
      ],
      "properties": {
        "month": {
          "type": "string",
          "minLength": 2,
          "maxLength": 2,
          "description": "Two-digit month the card expires."
        },
        "year": {
          "type": "string",
          "minLength": 2,
          "maxLength": 2,
          "description": "Two-digit year the card expires."
        }
      },
      "description": "The expiration date of the card or token."
    },
    "CardFingerprint": {
      "type": "string",
      "maxLength": 100,
      "description": "Uniquely identifies a linked payment card or token.\nFor Apple Pay, the fingerprint is based on the tokenized card number and may vary based on the user's device.\nThis field can be used to identify specific payment methods across multiple accounts on your platform."
    },
    "CardID": {
      "type": "string",
      "description": "ID of the card."
    },
    "CardTransactionDetails": {
      "type": "object",
      "properties": {
        "status": {
          "$ref": "#/$defs/CardTransactionStatus"
        },
        "failureCode": {
          "$ref": "#/$defs/CardTransactionFailureCode"
        },
        "dynamicDescriptor": {
          "$ref": "#/$defs/CardDynamicDescriptor"
        },
        "transactionSource": {
          "$ref": "#/$defs/TransactionSource"
        },
        "initiatedOn": {
          "type": "string",
          "format": "date-time"
        },
        "confirmedOn": {
          "type": "string",
          "format": "date-time"
        },
        "settledOn": {
          "type": "string",
          "format": "date-time"
        },
        "failedOn": {
          "type": "string",
          "format": "date-time"
        },
        "canceledOn": {
          "type": "string",
          "format": "date-time"
        },
        "completedOn": {
          "type": "string",
          "format": "date-time"
        },
        "interchangeQualification": {
          "type": "string",
          "description": "The program assigned by the card network that determines the interchange rate for the transfer.",
          "deprecated": true
        },
        "feeProgram": {
          "type": "string",
          "description": "The program assigned by the card network that determines the interchange rate for the transfer."
        },
        "authorizationCode": {
          "type": "string",
          "description": "An alphanumeric code generated by the card network to demonstrate approval for the transaction."
        }
      },
      "description": "Card-specific details about the transaction."
    },
    "CardTransactionFailureCode": {
      "type": "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"
      ]
    },
    "CardTransactionStatus": {
      "type": "string",
      "enum": [
        "initiated",
        "confirmed",
        "canceled",
        "settled",
        "failed",
        "completed",
        "cleared-externally"
      ],
      "description": "Status of a transaction within the card payment lifecycle."
    },
    "CardType": {
      "type": "string",
      "enum": [
        "debit",
        "credit",
        "prepaid",
        "unknown"
      ],
      "description": "The type of the card."
    },
    "CardUpdateReason": {
      "type": "string",
      "enum": [
        "unspecified",
        "account-closed",
        "contact-cardholder",
        "expiration-update",
        "no-change",
        "no-match",
        "number-update"
      ],
      "description": "The results of the card update request."
    },
    "CardVerification": {
      "type": "object",
      "required": [
        "cvv",
        "addressLine1",
        "postalCode"
      ],
      "properties": {
        "cvv": {
          "allOf": [
            {
              "$ref": "#/$defs/CardVerificationResult"
            }
          ],
          "description": "Verification result of the card's CVV."
        },
        "addressLine1": {
          "allOf": [
            {
              "$ref": "#/$defs/CardVerificationResult"
            }
          ],
          "description": "Verification result of the billing address line 1.\nDerived from the same AVS code as `postalCode`; the card network returns a single code covering both address fields."
        },
        "postalCode": {
          "allOf": [
            {
              "$ref": "#/$defs/CardVerificationResult"
            }
          ],
          "description": "Verification result of the billing address postal code.\nDerived from the same AVS code as `addressLine1`; the card network returns a single code covering both address fields."
        },
        "accountName": {
          "allOf": [
            {
              "$ref": "#/$defs/AccountNameVerification"
            }
          ],
          "description": "Verification results of the cardholder's name, broken down by name component."
        }
      },
      "description": "The results of submitting cardholder data to a card network for verification."
    },
    "CardVerificationResult": {
      "type": "string",
      "enum": [
        "noMatch",
        "match",
        "notChecked",
        "unavailable",
        "partialMatch"
      ],
      "description": "The result of a card verification check."
    },
    "Currency": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "A 3-letter ISO 4217 currency code."
    },
    "DebitHoldPeriod": {
      "type": "string",
      "enum": [
        "no-hold",
        "1-day",
        "2-days"
      ],
      "description": "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."
    },
    "DomesticPullFromCard": {
      "type": "string",
      "enum": [
        "not-supported",
        "supported",
        "unknown"
      ],
      "description": "Indicates if the card supports domestic pull-from-card transfer."
    },
    "DomesticPushToCard": {
      "type": "string",
      "enum": [
        "not-supported",
        "standard",
        "fast-funds",
        "unknown"
      ],
      "description": "Indicates which level of domestic push-to-card transfer is supported by the card, if any."
    },
    "FacilitatorFee": {
      "type": "object",
      "properties": {
        "total": {
          "type": "integer",
          "format": "int64",
          "description": "Total facilitator fee."
        },
        "totalDecimal": {
          "type": "string",
          "pattern": "^\\d+\\.\\d{1,9}$",
          "description": "Same as `total`, but a decimal-formatted numerical string that represents up to 9 decimal place precision.\n\nOnly either `total` or `totalDecimal` can be set. Set this field if you expect the fee to be in fractions of a cent."
        },
        "markup": {
          "type": "integer",
          "format": "int64",
          "description": "Markup facilitator fee."
        },
        "markupDecimal": {
          "type": "string",
          "pattern": "^\\d+\\.\\d{1,9}$",
          "description": "Same as `markup`, but a decimal-formatted numerical string that represents up to 9 decimal place precision.\nOnly either `markup` or `markupDecimal` can be set. Set this field if you expect the fee to be in fractions of a cent."
        }
      },
      "description": "Total or markup fee."
    },
    "ImageID": {
      "type": "string",
      "description": "Unique identifier for a image resource."
    },
    "ImagePublicID": {
      "type": "string",
      "pattern": "[A-Za-z0-9_-]{21}",
      "description": "A unique identifier for an image, used in public image links."
    },
    "InstantBankFailureCode": {
      "type": "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"
      ],
      "description": "Status codes for instant-bank failures."
    },
    "InstantBankNetwork": {
      "type": "string",
      "enum": [
        "fednow",
        "rtp"
      ],
      "description": "The network that the transaction was processed on."
    },
    "InstantBankTransactionDetails": {
      "type": "object",
      "required": [
        "network",
        "status"
      ],
      "properties": {
        "network": {
          "$ref": "#/$defs/InstantBankNetwork"
        },
        "status": {
          "$ref": "#/$defs/InstantBankTransactionStatus"
        },
        "networkResponseCode": {
          "type": "string",
          "description": "Response code returned by network on failure."
        },
        "failureCode": {
          "$ref": "#/$defs/InstantBankFailureCode"
        },
        "endToEndID": {
          "type": "string"
        },
        "initiatedOn": {
          "type": "string",
          "format": "date-time"
        },
        "completedOn": {
          "type": "string",
          "format": "date-time"
        },
        "failedOn": {
          "type": "string",
          "format": "date-time"
        },
        "acceptedWithoutPostingOn": {
          "type": "string",
          "format": "date-time"
        }
      },
      "description": "Instant-bank specific details about the transaction."
    },
    "InstantBankTransactionStatus": {
      "type": "string",
      "enum": [
        "initiated",
        "completed",
        "failed",
        "accepted-without-posting"
      ],
      "description": "Status of a transaction within the instant-bank lifecycle."
    },
    "Metadata": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "Free-form key-value pair list. Useful for storing information that is not captured elsewhere."
    },
    "MoovFeeDetails": {
      "type": "object",
      "required": [
        "moovProcessing"
      ],
      "properties": {
        "cardScheme": {
          "type": "string",
          "description": "Card scheme fees accrued during authorization and settlement. String type represents dollars with up to 9 decimal place precision."
        },
        "interchange": {
          "type": "string",
          "description": "Network interchange fee for Visa, Mastercard, or Discover. String type represents dollars with up to 9 decimal place precision."
        },
        "discount": {
          "type": "string",
          "description": "Network discount fee for American Express. String type represents dollars with up to 9 decimal place precision."
        },
        "moovProcessing": {
          "type": "string",
          "description": "Moov processing fee. String type represents dollars with up to 9 decimal place precision."
        }
      },
      "description": "Processing and pass-through costs that add up to the moovFee."
    },
    "RTPFailureCode": {
      "type": "string",
      "enum": [
        "processing-error",
        "invalid-account",
        "account-closed",
        "account-blocked",
        "invalid-field",
        "transaction-not-supported",
        "limit-exceeded",
        "invalid-amount",
        "customer-deceased",
        "other"
      ],
      "description": "Status codes for RTP failures."
    },
    "RTPTransactionDetails": {
      "type": "object",
      "properties": {
        "status": {
          "$ref": "#/$defs/RTPTransactionStatus"
        },
        "networkResponseCode": {
          "type": "string",
          "description": "Response code returned by network on failure."
        },
        "failureCode": {
          "$ref": "#/$defs/RTPFailureCode"
        },
        "initiatedOn": {
          "type": "string",
          "format": "date-time"
        },
        "completedOn": {
          "type": "string",
          "format": "date-time"
        },
        "failedOn": {
          "type": "string",
          "format": "date-time"
        },
        "acceptedWithoutPostingOn": {
          "type": "string",
          "format": "date-time"
        }
      },
      "description": "DEPRECATED: use `InstantBankTransactionDetails` instead (v2026.04.00 or later). RTP specific details about the transaction.",
      "deprecated": true
    },
    "RTPTransactionStatus": {
      "type": "string",
      "enum": [
        "initiated",
        "completed",
        "failed",
        "accepted-without-posting"
      ],
      "description": "Status of a transaction within the RTP lifecycle."
    },
    "RefundCardDetails": {
      "type": "object",
      "required": [
        "status"
      ],
      "properties": {
        "status": {
          "$ref": "#/$defs/RefundCardStatus"
        },
        "failureCode": {
          "$ref": "#/$defs/CardTransactionFailureCode"
        },
        "initiatedOn": {
          "type": "string",
          "format": "date-time"
        },
        "confirmedOn": {
          "type": "string",
          "format": "date-time"
        },
        "settledOn": {
          "type": "string",
          "format": "date-time"
        },
        "failedOn": {
          "type": "string",
          "format": "date-time"
        },
        "completedOn": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "RefundCardStatus": {
      "type": "string",
      "enum": [
        "initiated",
        "confirmed",
        "settled",
        "failed",
        "completed",
        "cleared-externally"
      ]
    },
    "RefundStatus": {
      "type": "string",
      "enum": [
        "created",
        "pending",
        "completed",
        "failed"
      ]
    },
    "SECCode": {
      "type": "string",
      "enum": [
        "WEB",
        "PPD",
        "CCD",
        "TEL"
      ],
      "description": "Code used to identify the ACH authorization method."
    },
    "TransactionSource": {
      "type": "string",
      "enum": [
        "first-recurring",
        "recurring",
        "unscheduled"
      ],
      "description": "Specifies the nature and initiator of a transaction. \n\nCrucial for recurring and merchant-initiated transactions as per card scheme rules. \nOmit for customer-initiated e-commerce transactions."
    },
    "TransferACHAddendaRecord": {
      "type": "object",
      "required": [
        "record",
        "isMasked"
      ],
      "properties": {
        "record": {
          "type": "string",
          "maxLength": 80,
          "description": "The ACH addenda record, which may have masked PII"
        },
        "isMasked": {
          "type": "boolean",
          "description": "Flag indicating whether or not this record has been masked"
        }
      },
      "description": "An addenda record which was added to an ACH transfer"
    },
    "TransferAccount": {
      "type": "object",
      "required": [
        "accountID",
        "email",
        "displayName"
      ],
      "properties": {
        "accountID": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        }
      }
    },
    "TransferCapture": {
      "type": "object",
      "required": [
        "authorizationID",
        "captureID"
      ],
      "properties": {
        "authorizationID": {
          "type": "string",
          "description": "ID of the card authorization associated with this transfer."
        },
        "captureID": {
          "type": "string",
          "description": "ID of the card capture associated with this transfer."
        }
      },
      "description": "The card authorization and capture IDs associated with a transfer."
    },
    "TransferDestination": {
      "type": "object",
      "required": [
        "paymentMethodID",
        "paymentMethodType",
        "account"
      ],
      "properties": {
        "paymentMethodID": {
          "type": "string"
        },
        "paymentMethodType": {
          "$ref": "#/$defs/TransferPaymentMethodType"
        },
        "account": {
          "$ref": "#/$defs/TransferAccount"
        },
        "bankAccount": {
          "$ref": "#/$defs/TransferPaymentMethodsBankAccount"
        },
        "wallet": {
          "$ref": "#/$defs/TransferPaymentMethodsWallet"
        },
        "card": {
          "$ref": "#/$defs/TransferPaymentMethodsCard"
        },
        "achDetails": {
          "$ref": "#/$defs/ACHTransactionDetails"
        },
        "applePay": {
          "$ref": "#/$defs/ApplePayResponse"
        },
        "cardDetails": {
          "$ref": "#/$defs/CardTransactionDetails"
        },
        "rtpDetails": {
          "$ref": "#/$defs/RTPTransactionDetails"
        },
        "instantBankDetails": {
          "$ref": "#/$defs/InstantBankTransactionDetails"
        }
      }
    },
    "TransferEntryMode": {
      "type": "string",
      "enum": [
        "contactless"
      ],
      "description": "How the card information was entered into the point of sale terminal."
    },
    "TransferFailureReason": {
      "type": "string",
      "enum": [
        "source-payment-error",
        "destination-payment-error",
        "wallet-insufficient-funds",
        "rejected-high-risk",
        "processing-error"
      ],
      "description": "Reason for a transfer's failure."
    },
    "TransferLineItem": {
      "type": "object",
      "required": [
        "name",
        "basePrice",
        "quantity"
      ],
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 150,
          "description": "The name of the item."
        },
        "basePrice": {
          "allOf": [
            {
              "$ref": "#/$defs/AmountDecimal"
            }
          ],
          "description": "The base price of the item before applying option modifiers."
        },
        "quantity": {
          "type": "integer",
          "format": "int32",
          "minimum": 1,
          "description": "The quantity of this item."
        },
        "options": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/TransferLineItemOption"
          },
          "description": "Optional list of modifiers applied to this item (e.g., 

# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/moov/refs/heads/main/json-schema/moov-created-transfer-schema.json

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/moov-created-transfer"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.