Update payment link

Changes the settings of an existing payment link, such as its title, amount, return URLs, capacity, or the checkout options it offers.

Send only the fields you want to change. Payments already made on the link are not affected; new settings apply to the next checkout.

To stop a link from taking payments without deleting it, set active to false.

On a link a marketplace created for you with Create marketplace payment link, the marketplace's commission can't be changed: sending payouts_share or payout_shares returns 422 VALIDATION_ERROR with The payouts share of a marketplace link can't be changed. See Seller-led marketplace.

Path Params
string
required
Defaults to MB-LINK-8B9C0D1E2F

Payment link ID

Body Params
string
length between 1 and 50
Defaults to Chocolate Box - Small

The title of the payment link. name is an older alias for it.

string
length between 1 and 50

Older alias for title. If you send both, title is used.

string
length ≤ 75
Defaults to 12pcs Chocolate Box

Payment description. This will appear on the payment checkout page.

integer

The number of times a payment link can be used. The capacity will be ignored when the subscription params exist. Once set, it can't be cleared back to unlimited.

boolean
Defaults to true
uri
Defaults to https://example.com/paymentSuccess

The URL which the customer will be redirected to after a successful payment.

uri
Defaults to https://example.com/paymentFailure

The URL which the customer will be redirected to after a failed payment.

uri

Currently ignored on update. Set it when you create the link.

number
0 to 5

Processing fee that you as a merchant can impose on your customers, as a percentage of the amount

number
≥ 2
Defaults to 119.99

amount could be 0 with save_card 'required' option for card verification

string
Defaults to AED

Currency code for the payment amount. Accepted currencies are configured by Mamo and can change; see Supported currencies for the current list. Tabby is available for AED only, American Express cards can pay in AED or USD only, and hold_and_charge_later supports a narrower set of currencies.

Allowed:
boolean
Defaults to false

Enables the ability for customers to buy now and pay later.

boolean
Defaults to false

Enables the ability for customers to add a message during the checkout process.

boolean
Defaults to false

Enables the tips option. This will be displayed on the first screen.

string
enum

Allows the merchant to enable the option to store card details to be used later on for Merchant Initiated Transactions.

Allowed:
boolean

Enables adding customer details such as the name, email, and phone number. This screen will be displayed before the payment details screen. Only true takes effect on update; false is ignored.

boolean
Defaults to false

When enabled, customers can specify the number of items they intend to purchase. This quantity will serve as a multiplier for the base amount.

boolean
Defaults to true

Enables the sending of customer receipts. If you leave it out of an update, it is reset to true, so send false every time you want receipts off.

payment_methods
array

Accepted payment methods: card, and wallet for Apple Pay and Google Pay. Send ["card"] to turn wallets off.

payment_methods
rules
object

Setting the rule for payment link

string

The identifier of an existing subscription (created via the Create subscription API) to attach to this payment link. This is the recommended way to create a subscription payment link — create the subscription first, then pass its identifier here. Requires link_type to be inline.

subscription
object

Inline subscription configuration, to be populated if this payment link is for a subscription. Otherwise, this property can be left out. We recommend creating the subscription with the Create Subscription API and passing its subscription_id instead.

string

Top-level prefill field. The customer's first name, stored in the link's prefilled_customer and pre-populated at checkout. Note: prefill is driven only by these top-level first_name, last_name, email and phone_number fields — the prefilled_customer object is returned in responses but is ignored if sent in the request body. Sending any of the four replaces the whole prefilled_customer, so send all four to keep existing values.

string

Top-level prefill field. The customer's last name, stored in the link's prefilled_customer and pre-populated at checkout.

string

Top-level prefill field. The customer's email, stored in the link's prefilled_customer and pre-populated at checkout.

string

Top-level prefill field. The customer's phone number, stored in the link's prefilled_customer and pre-populated at checkout.

string
boolean
Defaults to false

Indicates whether to place the payment on hold and charge it later using the "captures" API.

custom_data
object
payouts_share
object | null

Split that routes part of each payment to a recipient. Send payouts_share: null to remove an existing split from the link. When setting a split, supply recipient_id and exactly one of percentage_to_recipient or amount_to_recipient (not both).

Headers
string

A unique key, such as a UUID, that makes it safe to retry this request. Reuse the same key when you retry. See Idempotency.

Responses

404

Invalid request

429

Too many requests. You sent more than 100 requests in 30 seconds from one IP address. This response has no JSON body. See Rate limits.

500

Unexpected error

Language
Credentials
Header
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json