Create payment link
Create a payment link that allows an end user to make a payment on Moov’s hosted payment link page.
To access this endpoint using an access token
you’ll need to specify the /accounts/{accountID}/transfers.write
scope.
curl --request POST \
--url https://api.moov.io/accounts/{accountID}/payment-links \
--header 'Authorization: Basic REPLACE_BASIC_AUTH' \
--header 'content-type: application/json' \
--header 'x-moov-version: SOME_STRING_VALUE' \
--data '{"partnerAccountID":"d290f1ee-6c54-4b01-90e6-d701748f0851","merchantPaymentMethodID":"4c4e7f8e-81f4-4f3d-8f6f-6f6e7f8e4c4e","amount":{"currency":"USD","value":10000},"display":{"title":"Example Payment Link","description":"This is an example payment link.","callToAction":"pay"},"customer":{"requirePhone":true},"payment":{"allowedMethods":["card-payment","ach-debit-collect"]}}'
{
"amount": {
"currency": "USD",
"value": 10000
},
"code": "3QLHtONjd5",
"createdOn": "2025-01-09T17:09:13.33Z",
"customer": {
"requirePhone": true
},
"display": {
"callToAction": "pay",
"description": "This is an example payment link.",
"title": "Example Payment Link"
},
"link": "https://moov.money/3QLHtONjd5",
"merchantAccountID": "34233b72-780c-4e0e-8b08-cbbe1bc878f8",
"merchantPaymentMethodID": "4c4e7f8e-81f4-4f3d-8f6f-6f6e7f8e4c4e",
"mode": "sandbox",
"partnerAccountID": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"payment": {
"allowedMethods": [
"card-payment",
"ach-debit-collect"
]
},
"status": "active",
"updatedOn": "2025-01-09T17:09:13.33Z",
"uses": 0
}
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
{
"amount": {
"currency": "string",
"value": "string"
},
"display": {
"callToAction": "string",
"description": "string",
"title": "string"
},
"expiresOn": "string",
"maxUses": "string",
"merchantPaymentMethodID": "string",
"partnerAccountID": "string",
"payment": {
"achDetails": {
"companyEntryDescription": "string",
"originatingCompanyName": "string"
},
"allowedMethods": "string",
"cardDetails": {
"dynamicDescriptor": "string"
}
},
"payout": {
"allowedMethods": "string",
"recipient": {
"email": "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
Path parameters
accountID
string
<uuid>
required
Body
Request to create a new payment link.
A payment link must include either payment
or payout
details, but not both. For payout payment links,
maxUses
will automatically be set to 1, as these are intended for a one-time disbursement
to a specific recipient.
Note: The payout
option is currently under development and is not yet available for general use.
amount
object
required
Show child attributes
currency
string
required
Pattern
value
integer<int64>
required
Quantity in the smallest unit of the specified currency.
In USD this is cents, for example, $12.04 is 1204 and $0.99 is 99.
display
object
required
Show child attributes
callToAction
string<enum>
required
The text to be displayed on web form’s submit button.
If set to “auto” the UI will automatically select between “pay” and “confirm” for payments and payouts respectively.
pay
,
book
,
subscribe
,
donate
,
confirm
,
auto
description
string
required
title
string
required
merchantPaymentMethodID
string<uuid>
required
partnerAccountID
string<uuid>
required
customer
object
Show child attributes
metadata
object
requireAddress
boolean
requirePhone
boolean
expiresOn
string<date-time>
maxUses
integer<int64>
An optional limit on the number of times this payment link can be used.
For payouts, maxUses
is always 1.
payment
object
Show child attributes
allowedMethods
array
required
apple-pay
,
card-payment
,
ach-debit-collect
achDetails
object
Show child attributes
companyEntryDescription
string
[4 to 10] characters
originatingCompanyName
string
[4 to 16] characters
cardDetails
object
Show child attributes
dynamicDescriptor
string
[4 to 22] characters
payout
object
Show child attributes
allowedMethods
array
required
push-to-card
,
rtp-credit
,
ach-credit-same-day
,
ach-credit-standard
recipient
object
required
Specify the intended recipient of the payout.
This information will be used to authenticate the end user when they follow the payment link.
Show child attributes
string<email>
<=255 characters
required
Response
amount
object
required
Show child attributes
currency
string
required
Pattern
value
integer<int64>
required
Quantity in the smallest unit of the specified currency.
In USD this is cents, for example, $12.04 is 1204 and $0.99 is 99.
code
string
required
createdOn
string<date-time>
required
customer
object
required
Show child attributes
metadata
object
requireAddress
boolean
requirePhone
boolean
display
object
required
Show child attributes
callToAction
string<enum>
required
The text to be displayed on web form’s submit button.
If set to “auto” the UI will automatically select between “pay” and “confirm” for payments and payouts respectively.
pay
,
book
,
subscribe
,
donate
,
confirm
,
auto
description
string
required
title
string
required
link
string<uri>
required
merchantAccountID
string<uuid>
required
merchantPaymentMethodID
string<uuid>
required
mode
string<enum>
required
sandbox
,
production
partnerAccountID
string<uuid>
required
status
string<enum>
required
active
,
used
,
disabled
,
expired
updatedOn
string<date-time>
required
uses
integer<int64>
required
disabledOn
string<date-time>
expiresOn
string<date-time>
lastUsedOn
string<date-time>
maxUses
integer<int64>
An optional limit on the number of times this payment link can be used.
For payouts, maxUses
is always 1.
payment
object
Show child attributes
allowedMethods
array
required
apple-pay
,
card-payment
,
ach-debit-collect
achDetails
object
Show child attributes
companyEntryDescription
string
[4 to 10] characters
originatingCompanyName
string
[4 to 16] characters
cardDetails
object
Show child attributes
dynamicDescriptor
string
[4 to 22] characters
payout
object
Show child attributes
allowedMethods
array
required
push-to-card
,
rtp-credit
,
ach-credit-same-day
,
ach-credit-standard
recipient
object
required
Specify the intended recipient of the payout.
This information will be used to authenticate the end user when they follow the payment link.
Show child attributes
string<email>
<=255 characters
required