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
YYYYis the yearQQis the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)BBis the build number, starting at.01, for subsequent builds in the same quarter.- For example, 
v2024.01.00is 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.00Path 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