Link a card
Link a card to an existing Moov account.
Read our accept card payments guide to learn more.
Only use this endpoint if you have provided Moov with a copy of your PCI attestation of compliance.
During card linking, the provided data will be verified by submitting a $0 authorization (account verification) request.
If merchantAccountID
is provided, the authorization request will contain that account’s statement descriptor and address.
Otherwise, the platform account’s profile will be used. If no statement descriptor has been set, the authorization will
use the account’s name instead.
It is strongly recommended that callers include the X-Wait-For
header, set to payment-method
, if the newly linked
card is intended to be used right away. If this header is not included, the caller will need to poll the List Payment
Methods
endpoint to wait for the new payment methods to be available for use.
To access this endpoint using an access token
you’ll need to specify the /accounts/{accountID}/cards.write
scope.
|
|
|
|
{
"billingAddress": {
"addressLine1": "123 Main Street",
"addressLine2": "Apt 302",
"city": "Boulder",
"country": "US",
"postalCode": "80301",
"stateOrProvince": "CO"
},
"bin": "123456",
"brand": "Visa",
"cardAccountUpdater": {
"updateType": "number-update",
"updatedOn": "2024-05-06T12:20:38.184Z"
},
"cardCategory": "CLASSIC",
"cardID": "01234567-89ab-cdef-0123-456789abcdef",
"cardOnFile": true,
"cardType": "credit",
"cardVerification": {
"accountName": {
"firstName": "match",
"fullName": "match",
"lastName": "match",
"middleName": "match"
},
"addressLine1": "match",
"cvv": "match",
"postalCode": "match"
},
"commercial": false,
"domesticPullFromCard": "supported",
"domesticPushToCard": "standard",
"expiration": {
"month": "01",
"year": "21"
},
"fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3",
"holderName": "Jules Jackson",
"issuer": "GRINGOTTS BANK",
"issuerCountry": "US",
"issuerPhone": "8185551212",
"issuerURL": "HTTPS://WWW.EXAMPLE.COM/",
"lastFourCardNumber": "1234",
"merchantAccountID": "01234567-89ab-cdef-0123-456789abcdef",
"paymentMethods": [
{
"paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef",
"paymentMethodType": "card-payment"
},
{
"paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef",
"paymentMethodType": "push-to-card"
},
{
"paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef",
"paymentMethodType": "pull-from-card"
}
],
"regulated": false
}
Response headers
x-request-id
string
<uuid>
required
{
"error": "string"
}
Response headers
x-request-id
string
<uuid>
required
Response headers
x-request-id
string
<uuid>
required
Response headers
x-request-id
string
<uuid>
required
Response headers
x-request-id
string
<uuid>
required
{
"error": "string"
}
Response headers
x-request-id
string
<uuid>
required
{
"billingAddress": "string",
"cardCvv": "string",
"cardNumber": "string",
"cardOnFile": "string",
"e2ee": {
"token": "string"
},
"error": "string",
"expiration": "string",
"holderName": "string",
"merchantAccountID": "string",
"verifyName": "string"
}
Response headers
x-request-id
string
<uuid>
required
Response headers
x-request-id
string
<uuid>
required
Response headers
x-request-id
string
<uuid>
required
Response headers
x-request-id
string
<uuid>
required
Headers
x-moov-version
string
API version
Specify an API version.
API versioning follows the format vYYYY.QQ.BB
, where
YYYY
is the yearQQ
is the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)BB
is the build number, starting at.01
, for subsequent builds in the same quarter.- For example,
v2024.01.00
is the initial release of the first quarter of 2024.
- For example,
The latest
version represents the most recent development state. It may include breaking changes and should be treated as a beta release.
v2024.01.00
x-wait-for
string
Optional header to wait for certain events, such as the creation of a payment method, to occur before returning a response.
When this header is set to payment-method
, the response will include any payment methods that were created for the newly
linked card in the paymentMethods
field. Otherwise, the paymentMethods
field will be omitted from the response.
payment-method
Path parameters
accountID
string
<uuid>
required
Body
billingAddress
object
required
Show child attributes
postalCode
string
<=10 characters
required
addressLine1
string
<=60 characters
addressLine2
string
<=32 characters
city
string
<=32 characters
country
string
<=2 characters
stateOrProvince
string
<=2 characters
cardCvv
string
required
cardNumber
string
required
expiration
object
required
Show child attributes
month
string
2 characters
required
year
string
2 characters
required
cardOnFile
boolean
e2ee
object
Show child attributes
token
string<jwe>
required
holderName
string
merchantAccountID
string
verifyName
boolean
Response
billingAddress
object
required
Show child attributes
postalCode
string
<=10 characters
required
addressLine1
string
<=60 characters
addressLine2
string
<=32 characters
city
string
<=32 characters
country
string
<=2 characters
stateOrProvince
string
<=2 characters
bin
string
[6 to 8] characters
required
brand
string<enum>
required
American Express
,
Discover
,
Mastercard
,
Visa
,
Unknown
cardID
string<uuid>
required
cardType
string<enum>
required
debit
,
credit
,
prepaid
,
unknown
cardVerification
object
required
Show child attributes
accountName
object
required
Show child attributes
firstName
string<enum>
required
noMatch
,
match
,
notChecked
,
unavailable
,
partialMatch
fullName
string<enum>
required
noMatch
,
match
,
notChecked
,
unavailable
,
partialMatch
lastName
string<enum>
required
noMatch
,
match
,
notChecked
,
unavailable
,
partialMatch
middleName
string<enum>
required
noMatch
,
match
,
notChecked
,
unavailable
,
partialMatch
addressLine1
string<enum>
required
noMatch
,
match
,
notChecked
,
unavailable
,
partialMatch
cvv
string<enum>
required
noMatch
,
match
,
notChecked
,
unavailable
,
partialMatch
postalCode
string<enum>
required
noMatch
,
match
,
notChecked
,
unavailable
,
partialMatch
domesticPullFromCard
string<enum>
required
not-supported
,
supported
,
unknown
domesticPushToCard
string<enum>
required
not-supported
,
standard
,
fast-funds
,
unknown
expiration
object
required
Show child attributes
month
string
2 characters
required
year
string
2 characters
required
fingerprint
string
<=100 characters
required
issuer
string
required
issuerCountry
string
required
issuerPhone
string
required
issuerURL
string<uri>
required
lastFourCardNumber
string
4 characters
required
cardAccountUpdater
object
Show child attributes
updateType
string<enum>
unspecified
,
account-closed
,
contact-cardholder
,
expiration-update
,
no-change
,
no-match
,
number-update
updatedOn
string<date-time>
cardCategory
string
cardOnFile
boolean
commercial
boolean
holderName
string
merchantAccountID
string<uuid>
paymentMethods
array
Show child attributes
paymentMethodID
string<uuid>
paymentMethodType
string<enum>
moov-wallet
,
ach-debit-fund
,
ach-debit-collect
,
ach-credit-standard
,
ach-credit-same-day
,
rtp-credit
,
card-payment
,
push-to-card
,
pull-from-card
,
apple-pay
,
card-present-payment
regulated
boolean