Update a payment method
Changes the label, billing contact details, or stored metadata on one of the company's own payment methods. Requires the payment_methods:write permission.
Authorization
AuthorizationstringrequiredPath parameters
methodIdstringrequiredThe payment method to update. A Snowflake id, sent as a decimal string.
Body
application/json
Every field is optional. Only the ones you send are written.
namestringThe billing name held against the payment method. Between 2 and 250 characters. Omit to leave it as it is.
emailstring · emailThe billing email held against the payment method. At most 250 characters. Omit to leave it as it is.
phonestringThe billing phone number held against the payment method. At most 20 characters. Omit to leave it as it is.
addressobjectThe billing address held against the payment method. Sent whole — supplying it replaces every part of the stored address. Omit to leave it as it is.
descriptionstringThe free-text label returned as description. At most 500 characters. Omit to leave it as it is.
metadataobjectFree-form string keys and string values stored with the payment method. Sent whole — supplying it replaces the whole map. It is not returned by any of these endpoints. Omit to leave it as it is.
Response
200 · The payment method after the change. `name`, `email`, `phone`, `address`, and `metadata` are stored but are not part of this response.
idstringrequiredThe payment method. Send this value wherever a methodId is asked for. A Snowflake id, sent as a decimal string.
typeenum<string>requiredWhat kind of funding source this is. ach is a US bank account reached by Automated Clearing House transfer.
brandstringThe card network or bank brand the processor reported, for example "Visa". Absent when the processor reported none.
holderstringThe name on the card or bank account, as the processor reported it. Absent when the processor reported none.
last4stringThe last four digits of the card or account number. The full number is never returned. Absent when the processor reported none.
expiresobjectThe card expiry, month and year only. Absent for bank accounts, and for cards whose expiry the processor did not report.
cardTypeenum<string>Whether the card draws on a bank balance or a credit line. Absent for bank accounts, and when the processor did not report it.
accountTypeenum<string>The kind of bank account. Absent for cards, and when the processor did not report it.
descriptionstringThe free-text label supplied when the method was added. Absent when none was given.
deactivatedstring · date-timeWhen the method was deactivated, in the company's timezone and without an offset. Absent while the method is usable.
isDeactivatedbooleanrequiredTrue when deactivated is present. A deactivated method stays on file but cannot be charged.
deactivationReasonstringThe reason given when the method was deactivated. Absent while the method is usable.
createdstring · date-timerequiredWhen the method was added, in the company's timezone and without an offset.
capabilitiesenum<string>[]requiredWhat the method may be used for. collect takes money in, payout sends money out. Bank accounts normally get both; cards get collect only. The array is empty when the method has no capability with the processor MagicDoor currently runs.
400 · A value failed its check — a name outside 2 to 250 characters, an email that is not a valid address, or a phone number that is not a valid number.
401 · The request carried no valid access token.
403 · The token is not a property manager token, or it lacks the `payment_methods:write` permission.
404 · No such payment method, or it belongs to another company, or it was deleted, or it belongs to a tenant, owner, vendor, or applicant rather than to the company itself.
name, email, phone, and address are the billing contact details held against the method, not the card or bank account itself. The card number, expiry, brand, and last four digits come from the payment processor and cannot be changed here — replace the method instead.
Only the fields you send are written. A request that sends none of them is accepted and returns the method unchanged.