Updates a payment while its status is still scheduled. Once processing has begun, the request returns 409 PAYMENT_NOT_EDITABLE. Once the receiver has upgraded the payment (see receiverUpgrade), it can no longer be updated and the request returns 409 PAYMENT_UPGRADED_BY_RECEIVER. Only the fields you send are changed.
{
"error": {
"type": "authorization_error",
"code": "BUSINESS_NOT_ELIGIBLE",
"message": "Business is not eligible to make payments. See the limitations endpoint for details."
}
}
Signed MelioSonar session token from the initiating device, used for risk evaluation; invalid or expired tokens return 400 INVALID_SONAR_TOKEN.
Melio-Entity-Id
string
required
Entity the request operates on — an entity id (ent_<uuid>) or me (the partner's sole entity).
Path Parameters
paymentId
string
required
Body
application/json
Fields that can be changed on a payment before it begins processing. All fields are optional; only supplied fields are updated.
amount
integer
Minor units (cents). Amount changes may be rejected (400) when they are not enabled for your account.
deductionDate
string<date>
The debit/schedule date
deliveryPreference
enum<string>
See CreatePaymentRequest.deliveryPreference. The preference's rail must match the payment's receiving account, and only the values allowed for the payment's originating account are accepted (card-funded ACH/wire payments use same-day-ach / instant-domestic-wire); fast variants remain subject to the per-payment eligibility check and are rejected with 400 when ineligible.
Available options:
standard-ach,
same-day-ach,
rtp,
standard-check,
express-check,
overnight-check,
domestic-wire,
instant-domestic-wire,
virtual-card,
instant-virtual-card,
counterparty-choice,
international-fx,
fast-international-fx,
international-gusd
noteToSelf
string
Payer-private memo, never shown to the recipient
noteToRecipient
string
Note shown to the payment recipient
externalId
string
Your own unique identifier for the resource. Unique per partner per resource type (reusing one returns 409 DUPLICATE_EXTERNAL_ID). Distinct from the Idempotency-Key header, which dedupes the request rather than identifying the resource.
Maximum string length: 255
Pattern: ^[A-Za-z0-9_-]+$
metadata
object
Free-form string key/value pairs stored and returned verbatim, never interpreted by Melio. Up to 500 keys; each key 1 to 40 chars and may not contain square brackets ([], reserved for the metadata[key] filter); value ≤100 chars. The whole object must serialize to at most 128KB of JSON. Filterable via metadata[key].
Hide child attributes
metadata.{key}
string
Maximum string length: 100
Response
The updated payment.
deliveryPreference
enum<string>
required
Effective delivery preference. Reflects the faster variant when one was applied, otherwise the receiving rail's normal-speed value. Card-funded ACH and wire payments always report the fast name (same-day-ach / instant-domestic-wire) — a card collect is immediate, so those payments deliver at the fast speed.
Available options:
standard-ach,
same-day-ach,
rtp,
standard-check,
express-check,
overnight-check,
domestic-wire,
instant-domestic-wire,
virtual-card,
instant-virtual-card,
counterparty-choice,
international-fx,
fast-international-fx,
international-gusd
fees
object[]
required
The fees charged for this payment. Includes both the originator-side and receiver-side fees; use chargeTo on each item to tell them apart. Always present — an empty array when no fees have been recorded yet (e.g. a freshly created payment). Receiver-side fees appear when the receiver upgraded the payment (see receiverUpgrade): rtp and same-day-ach are netted — deducted from the amount the receiver is paid. An instant-virtual-card upgrade carries no fee.
Hide child attributes
fees.type
enum<string>
required
What the fee is for. Delivery-method fees use the delivery preference they apply to (standard-ach, same-day-ach, rtp, standard-check, express-check, overnight-check, domestic-wire, instant-domestic-wire, counterparty-choice, international-fx, fast-international-fx, international-gusd); funding-source fees use the funding-source type (card).
Available options:
standard-ach,
same-day-ach,
rtp,
standard-check,
express-check,
overnight-check,
domestic-wire,
instant-domestic-wire,
counterparty-choice,
international-fx,
fast-international-fx,
international-gusd,
card
fees.chargeTo
enum<string>
required
Which side of the payment the fee is levied on: the account originating the payment or the account receiving it. Works for both estimated (calculator) and applied (payment) fees.
Available options:
originator,
receiver
fees.status
enum<string>
required
Whether the fee has been charged or is still pending.
Available options:
charged,
pending
fees.fixed
object
Present when the fee is a flat amount.
Hide child attributes
fees.fixed.value
integer
Flat fee, minor units (cents)
fees.percent
object
Present when the fee is a percentage of the payment amount.
Hide child attributes
fees.percent.rate
number
Percentage rate (e.g. 2.9 = 2.9%)
fees.percent.min
integer
Minimum fee, minor units (cents)
fees.percent.max
integer
Maximum fee, minor units (cents)
fees.amount
integer
The resolved fee for the requested payment amount, in minor units (cents). Absent only when the fee cannot be resolved without a per-payment quote (e.g. tiered pricing).
id
string
Opaque payment id (pay_)
externalId
string
Your own unique identifier for the resource. Unique per partner per resource type (reusing one returns 409 DUPLICATE_EXTERNAL_ID). Distinct from the Idempotency-Key header, which dedupes the request rather than identifying the resource.
Maximum string length: 255
Pattern: ^[A-Za-z0-9_-]+$
amount
integer
currency
string
originatingAccountId
string
Internal originating account id (acct_)
receivingAccountId
string
External receiving account id (acct_)
deductionDate
string<date>
deliveryDate
string<date>
status
enum<string>
While a payment is being reviewed it is reported as scheduled; there is no separate review status.
Available options:
scheduled,
in-progress,
completed,
failed,
canceled
failureReason
object
Why a payment failed. Present only when status is failed, and absent otherwise.
Codes are named after the industry code that produced them - the NACHA return code for an ACH return (R02_ACCOUNT_CLOSED), CARD_ for an ISO 8583 card decline - so a code can be matched against a bank return without a translation table. Failures with no industry code behind them (a returned check, a risk decision) carry a descriptive name instead.
type says which leg of the payment failed, so the same code serves both legs: R02_ACCOUNT_CLOSED under failed-to-collect refers to the payer's account, and under failed-to-deliver to the recipient's. Always read code together with type.
message is human-readable and may be reworded at any time, so do not parse or match on it. New code values may be added within an existing type, so treat an unrecognized code as the generic code for its type (COLLECTION_FAILED, DELIVERY_FAILED or RISK_DECLINED) rather than as an error.
Hide child attributes
failureReason.type
enum<string>
required
Which leg of the payment failed.
failed-to-collect - the funds could not be debited from the originating account, so no money left the payer. Typically fixable by the payer (top up the account, fix the bank details) and then re-creating the payment.
failed-to-deliver - the funds were collected but could not be credited to the receiving account, and are returned to the payer. Usually needs corrected recipient details before re-creating the payment.
risk-declined - the payment was declined in review before any money moved.
Available options:
failed-to-collect,
failed-to-deliver,
risk-declined
failureReason.code
enum<string>
required
Stable, machine-readable failure code, named after the industry code behind it.
NACHA return codes (R##_*) can appear under failed-to-collect or failed-to-deliver; type says which account the code refers to.
Card declines (CARD_*) are ISO 8583 issuer responses and appear only under failed-to-collect, since only the payer funds a payment with a card.
Delivery outcomes (CHECK_RETURNED, VIRTUAL_CARD_EXPIRED, CANCELED_BY_RECIPIENT, RECIPIENT_DETAILS_NOT_PROVIDED) have no industry code behind them and appear only under failed-to-deliver.
Risk codes (VERIFICATION_FAILED, UNSUPPORTED_BUSINESS_TYPE, UNSUPPORTED_LOCATION, PAYMENT_NOT_ALLOWED, DUPLICATE_PAYMENT_DETECTED, RISK_DECLINED) appear only under risk-declined. Declines are reported as the bare RISK_DECLINED whenever the underlying reason cannot be disclosed, so it does not imply the reason is unknown.
Available options:
R01_INSUFFICIENT_FUNDS,
R02_ACCOUNT_CLOSED,
R03_NO_ACCOUNT,
R04_INVALID_ACCOUNT_NUMBER,
R05_UNAUTHORIZED_DEBIT,
R08_PAYMENT_STOPPED,
R09_UNCOLLECTED_FUNDS,
R10_NOT_AUTHORIZED,
R13_INVALID_ROUTING_NUMBER,
R16_ACCOUNT_FROZEN,
R20_NON_TRANSACTION_ACCOUNT,
R23_CREDIT_REFUSED,
R29_CORPORATE_NOT_AUTHORIZED,
R84_CREDIT_EXCEPTION,
CARD_DO_NOT_HONOR,
CARD_INVALID_TRANSACTION,
CARD_INSUFFICIENT_FUNDS,
CARD_LIMIT_EXCEEDED,
CARD_BALANCE_UNAVAILABLE,
CHECK_RETURNED,
VIRTUAL_CARD_EXPIRED,
CANCELED_BY_RECIPIENT,
RECIPIENT_DETAILS_NOT_PROVIDED,
VERIFICATION_FAILED,
UNSUPPORTED_BUSINESS_TYPE,
UNSUPPORTED_LOCATION,
PAYMENT_NOT_ALLOWED,
DUPLICATE_PAYMENT_DETECTED,
RISK_DECLINED,
COLLECTION_FAILED,
DELIVERY_FAILED
failureReason.message
string
required
Human-readable explanation of the failure. Display-only; do not match on it.
Example:
{ "type": "failed-to-collect", "code": "R01_INSUFFICIENT_FUNDS", "message": "The account had insufficient funds to cover the payment." }
noteToSelf
string
Payer-private memo, never shown to the recipient
noteToRecipient
string
Note shown to the payment recipient
metadata
object
Free-form string key/value pairs stored and returned verbatim, never interpreted by Melio. Up to 500 keys; each key 1 to 40 chars and may not contain square brackets ([], reserved for the metadata[key] filter); value ≤100 chars. The whole object must serialize to at most 128KB of JSON. Filterable via metadata[key].
Hide child attributes
metadata.{key}
string
Maximum string length: 100
tracking
object
Delivery tracking for the payment, discriminated by type. Appears once the rail has actually reported something — absent for wire and virtual-card payments, which report nothing, and for payments whose delivery has not reached the rail yet (a scheduled payment never carries it). A present object always holds at least one identifier or timestamp; the remaining fields fill in as the delivery progresses, so treat each of them as optional.
Option 1
Option 2
Hide child attributes
tracking.type
enum<string>
required
Available options:
ach
tracking.traceNumber
string
The ACH trace number of the delivery transfer, as reported by the network — the RTP root id for an RTP delivery. Absent until the transfer has been submitted.
tracking.sentAt
string<date-time>
When the delivery transfer was submitted to the network.
tracking.clearedAt
string<date-time>
When the delivery transfer settled at the receiving bank.
receiverUpgrade
object
Present when the receiving party upgraded the payment from the payment notification Melio sent them. The upgrade itself is the payment's deliveryPreference (rtp, same-day-ach or instant-virtual-card) and receivingAccountId; the upgradedFrom* fields hold what you originally chose. A speed upgrade (rtp, same-day-ach) keeps the receiving account; the others move the payment to an account the receiver added (a bank account in place of a check, or a virtual card). The receiver pays for the upgrade — see the receiver-side entries in fees. An upgraded payment can no longer be updated (409 PAYMENT_UPGRADED_BY_RECEIVER).
Hide child attributes
receiverUpgrade.upgradedFromDeliveryPreference
enum<string>
required
The normal-speed delivery preference of the receiving account you chose, named as in deliveryPreference (e.g. standard-ach, standard-check, or same-day-ach for a card-funded payment).
Available options:
standard-ach,
same-day-ach,
rtp,
standard-check,
express-check,
overnight-check,
domestic-wire,
instant-domestic-wire,
virtual-card,
instant-virtual-card,
counterparty-choice,
international-fx,
fast-international-fx,
international-gusd
receiverUpgrade.upgradedFromReceivingAccountId
string
required
The receiving account you chose (acct_). Equal to receivingAccountId when the upgrade kept it.
{
"error": {
"type": "authorization_error",
"code": "BUSINESS_NOT_ELIGIBLE",
"message": "Business is not eligible to make payments. See the limitations endpoint for details."
}
}
{"docsConfig":{"theme":"sequoia","$schema":"https://mintlify.com/docs.json","name":"Melio Payouts API","colors":{"primary":"#7849ff","light":"#b79eff","dark":"#5f33e6"},"logo":{"light":"https://mintcdn.com/melio/xvWXKzlr8EBNoRDW/images/melio-wordmark.svg?fit=max\u0026auto=format\u0026n=xvWXKzlr8EBNoRDW\u0026q=85\u0026s=64c5b00a44de83a5745e570ecf3d0fc2","dark":"https://mintcdn.com/melio/-5UmKJJuHDVMiDrl/images/melio-wordmark-invert.svg?fit=max\u0026auto=format\u0026n=-5UmKJJuHDVMiDrl\u0026q=85\u0026s=d39c348234f65d6b306ccd6084ebbc01","href":"https://melio.com/"},"favicon":{"light":"https://mintcdn.com/melio/J5BJFv_c5fQarBeJ/images/cropped-Melio_favicon_01-64x64.webp?fit=max\u0026auto=format\u0026n=J5BJFv_c5fQarBeJ\u0026q=85\u0026s=9f502b845554081800303c51cbf82a7c","dark":"https://mintcdn.com/melio/J5BJFv_c5fQarBeJ/images/cropped-Melio_favicon_01-64x64.webp?fit=max\u0026auto=format\u0026n=J5BJFv_c5fQarBeJ\u0026q=85\u0026s=9f502b845554081800303c51cbf82a7c"},"api":{"openapi":"openapi.json","params":{"expanded":"all"},"playground":{"display":"interactive"},"examples":{"defaults":"all","languages":["typescript","python","curl","java","ruby","go"],"prefill":true,"autogenerate":true},"url":"full","mdx":{"auth":{"method":"basic","name":"api-key"},"server":["https://api.staging01.melio.com","https://api.melio.com"]}},"background":{"color":{"dark":"#262D38"}},"navbar":{"links":[{"href":"https://developers.melio.com/contact","label":"Contact us"},{"href":"https://developers.melio.com/sign-in","label":"Log in"}],"primary":{"type":"button","label":"Sign up for beta","href":"https://developers.melio.com/sign-up"}},"seo":{"indexing":"navigable"},"fonts":{"family":"Inter"},"icons":{"library":"lucide"},"integrations":{"segment":{"key":"EJ3N2VRhwnd0eFx5CFt1BobojP0OF4GS"}},"markdown":{"schema":true},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"melio","hasAudioNarration":false,"actualSubdomain":"melio","customDomains":["developers.melio.com"],"gitSource":{"type":"github","owner":"melio","repo":"payouts-api-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","_id":"6ae0ec738cfebfdf07ee030c"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af47aa92d65da0928c63ec7","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"Documentation","count":32},{"language":"default","tag":"API Reference","count":24},{"language":"default","tag":"Tools","count":10},{"language":"default","tag":"Building with the API","count":8},{"language":"default","tag":"Entities","count":7},{"language":"default","tag":"Core resources","count":6},{"language":"default","tag":"Risk, compliance \u0026 going live","count":6},{"language":"default","tag":"Accounts","count":6},{"language":"default","tag":"Payments","count":6},{"language":"default","tag":"Get started","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".sidebar-group-header{font-size:0.9rem!important;font-weight:500!important;letter-spacing:0.01em}#page-title{font-size:2rem;line-height:1.25}#header .eyebrow{font-size:0.7rem!important}#header .prose{font-size:1rem!important}"}],"page":{"pagePath":"api-reference/payments/update-a-payment","slug":"/api-reference/payments/update-a-payment","pageMetadata":{"title":"Update a payment","description":"Updates a payment while its `status` is still `scheduled`. Once processing has begun, the request returns `409 PAYMENT_NOT_EDITABLE`. Once the receiver has upgraded the payment (see `receiverUpgrade`), it can no longer be updated and the request returns `409 PAYMENT_UPGRADED_BY_RECEIVER`. Only the fields you send are changed.\n","deprecated":null,"version":null,"openapi":"/openapi.json patch /payments/{paymentId}","href":"/api-reference/payments/update-a-payment","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Updates a payment while its \", _jsx(_components.code, {\n children: \"status\"\n }), \" is still \", _jsx(_components.code, {\n children: \"scheduled\"\n }), \". Once processing has begun, the request returns \", _jsx(_components.code, {\n children: \"409 PAYMENT_NOT_EDITABLE\"\n }), \". Once the receiver has upgraded the payment (see \", _jsx(_components.code, {\n children: \"receiverUpgrade\"\n }), \"), it can no longer be updated and the request returns \", _jsx(_components.code, {\n children: \"409 PAYMENT_UPGRADED_BY_RECEIVER\"\n }), \". Only the fields you send are changed.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update a payment","description":"Updates a payment while its `status` is still `scheduled`. Once processing has begun, the request returns `409 PAYMENT_NOT_EDITABLE`. Once the receiver has upgraded the payment (see `receiverUpgrade`), it can no longer be updated and the request returns `409 PAYMENT_UPGRADED_BY_RECEIVER`. Only the fields you send are changed.\n","deprecated":null,"version":null,"openapi":"/openapi.json patch /payments/{paymentId}","href":"/api-reference/payments/update-a-payment","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Payments"],"summary":"Update a payment","description":"Updates a payment while its `status` is still `scheduled`. Once processing has begun, the request returns `409 PAYMENT_NOT_EDITABLE`. Once the receiver has upgraded the payment (see `receiverUpgrade`), it can no longer be updated and the request returns `409 PAYMENT_UPGRADED_BY_RECEIVER`. Only the fields you send are changed.\n","security":["ab0dcb60-f328-4a46-ab41-338f5894e0f8"],"parameters":["6895d6be-7bec-4fa0-b216-895705245a13"],"requestBody":"8d65abec-ce35-4da8-957c-8022941c5b2e","responses":{"200":"91ad8747-bdd9-49d0-8599-dad9c35018d8","400":"2a7f6d09-3453-418d-9b94-8dd4bdf06ab6","403":"d02f5c4a-fcae-4523-bf01-5f35ddeb6ffd","404":"f47a6bb1-87ae-44f8-8609-568f4104e9ca","409":"0867c567-d95f-4c4d-ab62-744fd8a73afd"},"method":"patch","type":"path","servers":["11023ec5-d3f9-4571-b97f-e305433ac479","a9b4dcdc-ad19-4ca1-80f3-760819968e97"],"path":"/payments/{paymentId}","baseUrlOptions":["https://api.melio.com/v2","https://api.staging01.melio.com/v2"],"title":"Update a payment","codeSamples":[],"requestExampleLanguages":["typescript","python","bash","java","ruby","go"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.deliveryPreference":"rtp","body.noteToRecipient":"Invoice 42 (updated)","body.metadata.invoiceId":"INV-2043"}],"urlDisplay":"full"},"dependencies":{"parameters":{"6895d6be-7bec-4fa0-b216-895705245a13":{"name":"Melio-Sonar-Token","in":"header","required":false,"description":"Signed MelioSonar session token from the initiating device, used for risk evaluation; invalid or expired tokens return 400 INVALID_SONAR_TOKEN.\n","schema":{"type":"string","isRequired":false,"description":"Signed MelioSonar session token from the initiating device, used for risk evaluation; invalid or expired tokens return 400 INVALID_SONAR_TOKEN.\n","uniqueKey":"","typeLabel":"string"}},"2d11546c-845e-4045-883b-048adbf97636":{"name":"Melio-Entity-Id","in":"header","required":true,"description":"Entity the request operates on — an entity id (`ent_\u003cuuid>`) or `me` (the partner's sole entity).","schema":{"type":"string","isRequired":true,"description":"Entity the request operates on — an entity id (`ent_\u003cuuid>`) or `me` (the partner's sole entity).","uniqueKey":"","typeLabel":"string"}},"ad25b929-5165-4164-bc9b-45c8fa018f6a":{"name":"paymentId","in":"path","required":true,"schema":{"type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Fields that can be changed on a payment before it begins processing. All fields are optional; only supplied fields are updated.\n","properties":{"amount":{"type":"integer","description":"Minor units (cents). Amount changes may be rejected (400) when they are not enabled for your account.\n","uniqueKey":"amount","typeLabel":"integer"},"deductionDate":{"type":"string","format":"date","description":"The debit/schedule date","uniqueKey":"deductionDate","typeLabel":"string\u003cdate>"},"deliveryPreference":{"type":"string","enum":["standard-ach","same-day-ach","rtp","standard-check","express-check","overnight-check","domestic-wire","instant-domestic-wire","virtual-card","instant-virtual-card","counterparty-choice","international-fx","fast-international-fx","international-gusd"],"description":"See CreatePaymentRequest.deliveryPreference. The preference's rail must match the payment's receiving account, and only the values allowed for the payment's originating account are accepted (card-funded ACH/wire payments use `same-day-ach` / `instant-domestic-wire`); fast variants remain subject to the per-payment eligibility check and are rejected with 400 when ineligible.","uniqueKey":"deliveryPreference","typeLabel":"enum\u003cstring>"},"noteToSelf":{"type":"string","description":"Payer-private memo, never shown to the recipient","uniqueKey":"noteToSelf","typeLabel":"string"},"noteToRecipient":{"type":"string","description":"Note shown to the payment recipient","uniqueKey":"noteToRecipient","typeLabel":"string"},"externalId":{"type":"string","description":"Your own unique identifier for the resource. Unique per partner per resource type (reusing one returns 409 DUPLICATE_EXTERNAL_ID). Distinct from the Idempotency-Key header, which dedupes the request rather than identifying the resource.\n","maxLength":255,"pattern":"^[A-Za-z0-9_-]+$","uniqueKey":"externalId","typeLabel":"string"},"metadata":{"type":"object","description":"Free-form string key/value pairs stored and returned verbatim, never interpreted by Melio. Up to 500 keys; each key 1 to 40 chars and may not contain square brackets (`[` `]`, reserved for the `metadata[key]` filter); value ≤100 chars. The whole object must serialize to at most 128KB of JSON. Filterable via `metadata[key]`.\n","additionalProperties":{"type":"string","maxLength":100,"uniqueKey":"metadata.additionalProperties","typeLabel":"string"},"maxProperties":500,"uniqueKey":"metadata","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"deliveryPreference":"rtp","noteToRecipient":"Invoice 42 (updated)","metadata":{"invoiceId":"INV-2043"}},"examples":{"Example":{"title":"Example","value":{"deliveryPreference":"rtp","noteToRecipient":"Invoice 42 (updated)","metadata":{"invoiceId":"INV-2043"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"91ad8747-bdd9-49d0-8599-dad9c35018d8":{"description":"The updated payment.","content":{"application/json":{"schema":{"type":"object","required":["deliveryPreference","fees"],"properties":{"deliveryPreference":{"type":"string","description":"Effective delivery preference. Reflects the faster variant when one was applied, otherwise the receiving rail's normal-speed value. Card-funded ACH and wire payments always report the fast name (`same-day-ach` / `instant-domestic-wire`) — a card collect is immediate, so those payments deliver at the fast speed.\n","enum":["standard-ach","same-day-ach","rtp","standard-check","express-check","overnight-check","domestic-wire","instant-domestic-wire","virtual-card","instant-virtual-card","counterparty-choice","international-fx","fast-international-fx","international-gusd"],"isRequired":true,"uniqueKey":"deliveryPreference","typeLabel":"enum\u003cstring>"},"fees":{"type":"array","description":"The fees charged for this payment. Includes both the originator-side and receiver-side fees; use `chargeTo` on each item to tell them apart. Always present — an empty array when no fees have been recorded yet (e.g. a freshly created payment). Receiver-side fees appear when the receiver upgraded the payment (see `receiverUpgrade`): `rtp` and `same-day-ach` are netted — deducted from the amount the receiver is paid. An `instant-virtual-card` upgrade carries no fee.\n","items":{"type":"object","description":"A single fee charged for a payment. Shares the `Fee` shape used by the fee calculator (`type`, `chargeTo`, `fixed`/`percent`, `amount`, all monetary values in minor units), and adds `status`, which only applies once a fee has actually been applied to a payment.\n","required":["status","type","chargeTo"],"properties":{"type":{"type":"string","enum":["standard-ach","same-day-ach","rtp","standard-check","express-check","overnight-check","domestic-wire","instant-domestic-wire","counterparty-choice","international-fx","fast-international-fx","international-gusd","card"],"description":"What the fee is for. Delivery-method fees use the delivery preference they apply to (`standard-ach`, `same-day-ach`, `rtp`, `standard-check`, `express-check`, `overnight-check`, `domestic-wire`, `instant-domestic-wire`, `counterparty-choice`, `international-fx`, `fast-international-fx`, `international-gusd`); funding-source fees use the funding-source type (`card`).\n","isRequired":true,"uniqueKey":"fees.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"chargeTo":{"type":"string","enum":["originator","receiver"],"description":"Which side of the payment the fee is levied on: the account originating the payment or the account receiving it. Works for both estimated (calculator) and applied (payment) fees.\n","isRequired":true,"uniqueKey":"fees.items.[INDEX].chargeTo","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["charged","pending"],"description":"Whether the fee has been charged or is still pending.","isRequired":true,"uniqueKey":"fees.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"fixed":{"type":"object","description":"Present when the fee is a flat amount.","properties":{"value":{"type":"integer","description":"Flat fee, minor units (cents)","uniqueKey":"fees.items.[INDEX].fixed.value","typeLabel":"integer"}},"uniqueKey":"fees.items.[INDEX].fixed","typeLabel":"object"},"percent":{"type":"object","description":"Present when the fee is a percentage of the payment amount.","properties":{"rate":{"type":"number","description":"Percentage rate (e.g. 2.9 = 2.9%)","uniqueKey":"fees.items.[INDEX].percent.rate","typeLabel":"number"},"min":{"type":"integer","description":"Minimum fee, minor units (cents)","uniqueKey":"fees.items.[INDEX].percent.min","typeLabel":"integer"},"max":{"type":"integer","description":"Maximum fee, minor units (cents)","uniqueKey":"fees.items.[INDEX].percent.max","typeLabel":"integer"}},"uniqueKey":"fees.items.[INDEX].percent","typeLabel":"object"},"amount":{"type":"integer","description":"The resolved fee for the requested payment amount, in minor units (cents). Absent only when the fee cannot be resolved without a per-payment quote (e.g. tiered pricing).\n","uniqueKey":"fees.items.[INDEX].amount","typeLabel":"integer"}},"uniqueKey":"fees.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"fees","typeLabel":"object[]"},"id":{"type":"string","description":"Opaque payment id (pay_\u003cid>)","uniqueKey":"id","typeLabel":"string"},"externalId":{"type":"string","description":"Your own unique identifier for the resource. Unique per partner per resource type (reusing one returns 409 DUPLICATE_EXTERNAL_ID). Distinct from the Idempotency-Key header, which dedupes the request rather than identifying the resource.\n","maxLength":255,"pattern":"^[A-Za-z0-9_-]+$","uniqueKey":"externalId","typeLabel":"string"},"amount":{"type":"integer","uniqueKey":"amount","typeLabel":"integer"},"currency":{"type":"string","uniqueKey":"currency","typeLabel":"string"},"originatingAccountId":{"type":"string","description":"Internal originating account id (acct_\u003cid>)","uniqueKey":"originatingAccountId","typeLabel":"string"},"receivingAccountId":{"type":"string","description":"External receiving account id (acct_\u003cid>)","uniqueKey":"receivingAccountId","typeLabel":"string"},"deductionDate":{"type":"string","format":"date","uniqueKey":"deductionDate","typeLabel":"string\u003cdate>"},"deliveryDate":{"type":"string","format":"date","uniqueKey":"deliveryDate","typeLabel":"string\u003cdate>"},"status":{"type":"string","enum":["scheduled","in-progress","completed","failed","canceled"],"description":"While a payment is being reviewed it is reported as `scheduled`; there is no separate review status.\n","uniqueKey":"status","typeLabel":"enum\u003cstring>"},"failureReason":{"type":"object","description":"Why a payment failed. Present only when `status` is `failed`, and absent otherwise.\n\nCodes are named after the industry code that produced them - the NACHA return code for an ACH return (`R02_ACCOUNT_CLOSED`), `CARD_` for an ISO 8583 card decline - so a code can be matched against a bank return without a translation table. Failures with no industry code behind them (a returned check, a risk decision) carry a descriptive name instead.\n\n`type` says which leg of the payment failed, so the same code serves both legs: `R02_ACCOUNT_CLOSED` under `failed-to-collect` refers to the payer's account, and under `failed-to-deliver` to the recipient's. Always read `code` together with `type`.\n\n`message` is human-readable and may be reworded at any time, so do not parse or match on it. New `code` values may be added within an existing `type`, so treat an unrecognized `code` as the generic code for its `type` (`COLLECTION_FAILED`, `DELIVERY_FAILED` or `RISK_DECLINED`) rather than as an error.\n","required":["type","code","message"],"properties":{"type":{"type":"string","description":"Which leg of the payment failed.\n\n`failed-to-collect` - the funds could not be debited from the originating account, so no money left the payer. Typically fixable by the payer (top up the account, fix the bank details) and then re-creating the payment.\n\n`failed-to-deliver` - the funds were collected but could not be credited to the receiving account, and are returned to the payer. Usually needs corrected recipient details before re-creating the payment.\n\n`risk-declined` - the payment was declined in review before any money moved.\n","enum":["failed-to-collect","failed-to-deliver","risk-declined"],"isRequired":true,"uniqueKey":"failureReason.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Stable, machine-readable failure code, named after the industry code behind it.\n\n**NACHA return codes** (`R##_*`) can appear under `failed-to-collect` or `failed-to-deliver`; `type` says which account the code refers to.\n\n**Card declines** (`CARD_*`) are ISO 8583 issuer responses and appear only under `failed-to-collect`, since only the payer funds a payment with a card.\n\n**Delivery outcomes** (`CHECK_RETURNED`, `VIRTUAL_CARD_EXPIRED`, `CANCELED_BY_RECIPIENT`, `RECIPIENT_DETAILS_NOT_PROVIDED`) have no industry code behind them and appear only under `failed-to-deliver`.\n\n**Risk codes** (`VERIFICATION_FAILED`, `UNSUPPORTED_BUSINESS_TYPE`, `UNSUPPORTED_LOCATION`, `PAYMENT_NOT_ALLOWED`, `DUPLICATE_PAYMENT_DETECTED`, `RISK_DECLINED`) appear only under `risk-declined`. Declines are reported as the bare `RISK_DECLINED` whenever the underlying reason cannot be disclosed, so it does not imply the reason is unknown.\n","enum":["R01_INSUFFICIENT_FUNDS","R02_ACCOUNT_CLOSED","R03_NO_ACCOUNT","R04_INVALID_ACCOUNT_NUMBER","R05_UNAUTHORIZED_DEBIT","R08_PAYMENT_STOPPED","R09_UNCOLLECTED_FUNDS","R10_NOT_AUTHORIZED","R13_INVALID_ROUTING_NUMBER","R16_ACCOUNT_FROZEN","R20_NON_TRANSACTION_ACCOUNT","R23_CREDIT_REFUSED","R29_CORPORATE_NOT_AUTHORIZED","R84_CREDIT_EXCEPTION","CARD_DO_NOT_HONOR","CARD_INVALID_TRANSACTION","CARD_INSUFFICIENT_FUNDS","CARD_LIMIT_EXCEEDED","CARD_BALANCE_UNAVAILABLE","CHECK_RETURNED","VIRTUAL_CARD_EXPIRED","CANCELED_BY_RECIPIENT","RECIPIENT_DETAILS_NOT_PROVIDED","VERIFICATION_FAILED","UNSUPPORTED_BUSINESS_TYPE","UNSUPPORTED_LOCATION","PAYMENT_NOT_ALLOWED","DUPLICATE_PAYMENT_DETECTED","RISK_DECLINED","COLLECTION_FAILED","DELIVERY_FAILED"],"isRequired":true,"uniqueKey":"failureReason.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation of the failure. Display-only; do not match on it.","isRequired":true,"uniqueKey":"failureReason.message","typeLabel":"string"}},"example":{"type":"failed-to-collect","code":"R01_INSUFFICIENT_FUNDS","message":"The account had insufficient funds to cover the payment."},"uniqueKey":"failureReason","typeLabel":"object"},"noteToSelf":{"type":"string","description":"Payer-private memo, never shown to the recipient","uniqueKey":"noteToSelf","typeLabel":"string"},"noteToRecipient":{"type":"string","description":"Note shown to the payment recipient","uniqueKey":"noteToRecipient","typeLabel":"string"},"metadata":{"type":"object","description":"Free-form string key/value pairs stored and returned verbatim, never interpreted by Melio. Up to 500 keys; each key 1 to 40 chars and may not contain square brackets (`[` `]`, reserved for the `metadata[key]` filter); value ≤100 chars. The whole object must serialize to at most 128KB of JSON. Filterable via `metadata[key]`.\n","additionalProperties":{"type":"string","maxLength":100,"uniqueKey":"metadata.additionalProperties","typeLabel":"string"},"maxProperties":500,"uniqueKey":"metadata","typeLabel":"object"},"tracking":{"oneOf":[{"type":"object","description":"Delivery tracking for the payment, discriminated by `type`. Appears once the rail has actually reported something — absent for wire and virtual-card payments, which report nothing, and for payments whose delivery has not reached the rail yet (a `scheduled` payment never carries it). A present object always holds at least one identifier or timestamp; the remaining fields fill in as the delivery progresses, so treat each of them as optional.\n","required":["type"],"properties":{"type":{"type":"string","enum":["ach"],"isRequired":true,"uniqueKey":"tracking.oneOf.0.type","typeLabel":"enum\u003cstring>"},"traceNumber":{"type":"string","description":"The ACH trace number of the delivery transfer, as reported by the network — the RTP root id for an RTP delivery. Absent until the transfer has been submitted.\n","uniqueKey":"tracking.oneOf.0.traceNumber","typeLabel":"string"},"sentAt":{"type":"string","format":"date-time","description":"When the delivery transfer was submitted to the network.","uniqueKey":"tracking.oneOf.0.sentAt","typeLabel":"string\u003cdate-time>"},"clearedAt":{"type":"string","format":"date-time","description":"When the delivery transfer settled at the receiving bank.","uniqueKey":"tracking.oneOf.0.clearedAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"tracking.oneOf.0","typeLabel":"object"},{"type":"object","description":"Delivery tracking for the payment, discriminated by `type`. Appears once the rail has actually reported something — absent for wire and virtual-card payments, which report nothing, and for payments whose delivery has not reached the rail yet (a `scheduled` payment never carries it). A present object always holds at least one identifier or timestamp; the remaining fields fill in as the delivery progresses, so treat each of them as optional.\n","required":["type"],"properties":{"type":{"type":"string","enum":["check"],"isRequired":true,"uniqueKey":"tracking.oneOf.1.type","typeLabel":"enum\u003cstring>"},"checkNumber":{"type":"string","description":"The serial number printed on the check. Absent until the check has been issued.","uniqueKey":"tracking.oneOf.1.checkNumber","typeLabel":"string"},"issuedAt":{"type":"string","format":"date-time","description":"When the check was printed.","uniqueKey":"tracking.oneOf.1.issuedAt","typeLabel":"string\u003cdate-time>"},"mailedAt":{"type":"string","format":"date-time","description":"When the check was handed to the mail carrier.","uniqueKey":"tracking.oneOf.1.mailedAt","typeLabel":"string\u003cdate-time>"},"clearedAt":{"type":"string","format":"date-time","description":"When the check was deposited and cleared.","uniqueKey":"tracking.oneOf.1.clearedAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"tracking.oneOf.1","typeLabel":"object"}],"uniqueKey":"tracking","typeLabel":"object"},"receiverUpgrade":{"type":"object","description":"Present when the receiving party upgraded the payment from the payment notification Melio sent them. The upgrade itself is the payment's `deliveryPreference` (`rtp`, `same-day-ach` or `instant-virtual-card`) and `receivingAccountId`; the `upgradedFrom*` fields hold what you originally chose. A speed upgrade (`rtp`, `same-day-ach`) keeps the receiving account; the others move the payment to an account the receiver added (a bank account in place of a check, or a virtual card). The receiver pays for the upgrade — see the receiver-side entries in `fees`. An upgraded payment can no longer be updated (`409 PAYMENT_UPGRADED_BY_RECEIVER`).\n","required":["upgradedFromDeliveryPreference","upgradedFromReceivingAccountId"],"properties":{"upgradedFromDeliveryPreference":{"type":"string","description":"The normal-speed delivery preference of the receiving account you chose, named as in `deliveryPreference` (e.g. `standard-ach`, `standard-check`, or `same-day-ach` for a card-funded payment).\n","enum":["standard-ach","same-day-ach","rtp","standard-check","express-check","overnight-check","domestic-wire","instant-domestic-wire","virtual-card","instant-virtual-card","counterparty-choice","international-fx","fast-international-fx","international-gusd"],"isRequired":true,"uniqueKey":"receiverUpgrade.upgradedFromDeliveryPreference","typeLabel":"enum\u003cstring>"},"upgradedFromReceivingAccountId":{"type":"string","description":"The receiving account you chose (acct_\u003cid>). Equal to `receivingAccountId` when the upgrade kept it.\n","isRequired":true,"uniqueKey":"receiverUpgrade.upgradedFromReceivingAccountId","typeLabel":"string"}},"uniqueKey":"receiverUpgrade","typeLabel":"object"},"createdAt":{"type":"string","format":"date-time","uniqueKey":"createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","uniqueKey":"updatedAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"example":{"id":"pay_9f8c7b6a5d4e3f21","externalId":"invoice-2043","amount":125000,"currency":"USD","originatingAccountId":"acct_3f2504e0-4f89-41d3-9a0c-0305e82c3301","receivingAccountId":"acct_9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d","deductionDate":"2026-07-10","deliveryPreference":"rtp","deliveryDate":"2026-07-10","status":"scheduled","noteToRecipient":"Invoice 42 (updated)","metadata":{"invoiceId":"INV-2043"},"fees":[],"createdAt":"2026-07-08T15:04:05Z","updatedAt":"2026-07-08T15:12:00Z"},"examples":{"Example":{"title":"Example","value":{"id":"pay_9f8c7b6a5d4e3f21","externalId":"invoice-2043","amount":125000,"currency":"USD","originatingAccountId":"acct_3f2504e0-4f89-41d3-9a0c-0305e82c3301","receivingAccountId":"acct_9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d","deductionDate":"2026-07-10","deliveryPreference":"rtp","deliveryDate":"2026-07-10","status":"scheduled","noteToRecipient":"Invoice 42 (updated)","metadata":{"invoiceId":"INV-2043"},"fees":[],"createdAt":"2026-07-08T15:04:05Z","updatedAt":"2026-07-08T15:12:00Z"}}},"exampleType":"examples"}},"exampleType":"examples"},"2a7f6d09-3453-418d-9b94-8dd4bdf06ab6":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","code","message"],"properties":{"type":{"type":"string","description":"Coarse, machine-readable error category. Branch on this to handle a whole class of failures without enumerating every `code`.","enum":["invalid_request_error","authentication_error","authorization_error","not_found_error","conflict_error","rate_limit_error","service_unavailable_error","internal_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Machine-readable error code.","enum":["VALIDATION_ERROR","INVALID_ACCOUNT_TYPE","ACCOUNT_NOT_VERIFIED","INVALID_DELIVERY_PREFERENCE","MCC_REQUIRED","MERCHANT_ADDRESS_REQUIRED","GOODS_RECEIVED_REQUIRED","IDEMPOTENCY_KEY_REQUIRED","FEE_CALCULATION_FAILED","UNSUPPORTED_CURRENCY","FX_QUOTE_INVALID","INVALID_SONAR_TOKEN","ATTACHMENT_REQUIRED","COMPLIANCE_UPLOAD_FAILED","ATTACHMENT_UPLOAD_FAILED","INTERNATIONAL_NOT_ENABLED","ENTITY_ONBOARDING_INCOMPLETE","UNAUTHORIZED","IP_NOT_ALLOWED","NOT_FOUND","DUPLICATE_ENTITY","DUPLICATE_ACCOUNT","DUPLICATE_PAYMENT","DUPLICATE_EXTERNAL_ID","ACCOUNT_IN_USE","BUSINESS_NOT_ELIGIBLE","PAYMENT_NOT_EDITABLE","PAYMENT_UPGRADED_BY_RECEIVER","PAYMENT_NOT_CANCELABLE","IDEMPOTENCY_KEY_REUSED","IDEMPOTENCY_KEY_IN_PROGRESS","IDEMPOTENCY_STORE_UNAVAILABLE","INTERNAL_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Additional error context (e.g. field-level validation failures).","uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request_error","code":"VALIDATION_ERROR","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"d02f5c4a-fcae-4523-bf01-5f35ddeb6ffd":{"description":"The business is restricted by a risk/compliance limitation from making payments (BUSINESS_NOT_ELIGIBLE).\n","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","code","message"],"properties":{"type":{"type":"string","description":"Coarse, machine-readable error category. Branch on this to handle a whole class of failures without enumerating every `code`.","enum":["invalid_request_error","authentication_error","authorization_error","not_found_error","conflict_error","rate_limit_error","service_unavailable_error","internal_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Machine-readable error code.","enum":["VALIDATION_ERROR","INVALID_ACCOUNT_TYPE","ACCOUNT_NOT_VERIFIED","INVALID_DELIVERY_PREFERENCE","MCC_REQUIRED","MERCHANT_ADDRESS_REQUIRED","GOODS_RECEIVED_REQUIRED","IDEMPOTENCY_KEY_REQUIRED","FEE_CALCULATION_FAILED","UNSUPPORTED_CURRENCY","FX_QUOTE_INVALID","INVALID_SONAR_TOKEN","ATTACHMENT_REQUIRED","COMPLIANCE_UPLOAD_FAILED","ATTACHMENT_UPLOAD_FAILED","INTERNATIONAL_NOT_ENABLED","ENTITY_ONBOARDING_INCOMPLETE","UNAUTHORIZED","IP_NOT_ALLOWED","NOT_FOUND","DUPLICATE_ENTITY","DUPLICATE_ACCOUNT","DUPLICATE_PAYMENT","DUPLICATE_EXTERNAL_ID","ACCOUNT_IN_USE","BUSINESS_NOT_ELIGIBLE","PAYMENT_NOT_EDITABLE","PAYMENT_UPGRADED_BY_RECEIVER","PAYMENT_NOT_CANCELABLE","IDEMPOTENCY_KEY_REUSED","IDEMPOTENCY_KEY_IN_PROGRESS","IDEMPOTENCY_STORE_UNAVAILABLE","INTERNAL_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Additional error context (e.g. field-level validation failures).","uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"type":"authorization_error","code":"BUSINESS_NOT_ELIGIBLE","message":"Business is not eligible to make payments. See the limitations endpoint for details."}},"examples":{"Example":{"title":"Example","value":{"error":{"type":"authorization_error","code":"BUSINESS_NOT_ELIGIBLE","message":"Business is not eligible to make payments. See the limitations endpoint for details."}}}},"exampleType":"examples"}},"exampleType":"examples"},"f47a6bb1-87ae-44f8-8609-568f4104e9ca":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","code","message"],"properties":{"type":{"type":"string","description":"Coarse, machine-readable error category. Branch on this to handle a whole class of failures without enumerating every `code`.","enum":["invalid_request_error","authentication_error","authorization_error","not_found_error","conflict_error","rate_limit_error","service_unavailable_error","internal_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Machine-readable error code.","enum":["VALIDATION_ERROR","INVALID_ACCOUNT_TYPE","ACCOUNT_NOT_VERIFIED","INVALID_DELIVERY_PREFERENCE","MCC_REQUIRED","MERCHANT_ADDRESS_REQUIRED","GOODS_RECEIVED_REQUIRED","IDEMPOTENCY_KEY_REQUIRED","FEE_CALCULATION_FAILED","UNSUPPORTED_CURRENCY","FX_QUOTE_INVALID","INVALID_SONAR_TOKEN","ATTACHMENT_REQUIRED","COMPLIANCE_UPLOAD_FAILED","ATTACHMENT_UPLOAD_FAILED","INTERNATIONAL_NOT_ENABLED","ENTITY_ONBOARDING_INCOMPLETE","UNAUTHORIZED","IP_NOT_ALLOWED","NOT_FOUND","DUPLICATE_ENTITY","DUPLICATE_ACCOUNT","DUPLICATE_PAYMENT","DUPLICATE_EXTERNAL_ID","ACCOUNT_IN_USE","BUSINESS_NOT_ELIGIBLE","PAYMENT_NOT_EDITABLE","PAYMENT_UPGRADED_BY_RECEIVER","PAYMENT_NOT_CANCELABLE","IDEMPOTENCY_KEY_REUSED","IDEMPOTENCY_KEY_IN_PROGRESS","IDEMPOTENCY_STORE_UNAVAILABLE","INTERNAL_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Additional error context (e.g. field-level validation failures).","uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request_error","code":"VALIDATION_ERROR","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"0867c567-d95f-4c4d-ab62-744fd8a73afd":{"description":"The payment has begun processing and can no longer be edited (PAYMENT_NOT_EDITABLE), or the receiver upgraded it (PAYMENT_UPGRADED_BY_RECEIVER)\n","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","code","message"],"properties":{"type":{"type":"string","description":"Coarse, machine-readable error category. Branch on this to handle a whole class of failures without enumerating every `code`.","enum":["invalid_request_error","authentication_error","authorization_error","not_found_error","conflict_error","rate_limit_error","service_unavailable_error","internal_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Machine-readable error code.","enum":["VALIDATION_ERROR","INVALID_ACCOUNT_TYPE","ACCOUNT_NOT_VERIFIED","INVALID_DELIVERY_PREFERENCE","MCC_REQUIRED","MERCHANT_ADDRESS_REQUIRED","GOODS_RECEIVED_REQUIRED","IDEMPOTENCY_KEY_REQUIRED","FEE_CALCULATION_FAILED","UNSUPPORTED_CURRENCY","FX_QUOTE_INVALID","INVALID_SONAR_TOKEN","ATTACHMENT_REQUIRED","COMPLIANCE_UPLOAD_FAILED","ATTACHMENT_UPLOAD_FAILED","INTERNATIONAL_NOT_ENABLED","ENTITY_ONBOARDING_INCOMPLETE","UNAUTHORIZED","IP_NOT_ALLOWED","NOT_FOUND","DUPLICATE_ENTITY","DUPLICATE_ACCOUNT","DUPLICATE_PAYMENT","DUPLICATE_EXTERNAL_ID","ACCOUNT_IN_USE","BUSINESS_NOT_ELIGIBLE","PAYMENT_NOT_EDITABLE","PAYMENT_UPGRADED_BY_RECEIVER","PAYMENT_NOT_CANCELABLE","IDEMPOTENCY_KEY_REUSED","IDEMPOTENCY_KEY_IN_PROGRESS","IDEMPOTENCY_STORE_UNAVAILABLE","INTERNAL_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Additional error context (e.g. field-level validation failures).","uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request_error","code":"VALIDATION_ERROR","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"ab0dcb60-f328-4a46-ab41-338f5894e0f8":{"ApiKey":{"type":"apiKey","in":"header","name":"api-key","scopes":[],"schemeName":"ApiKey"}}},"servers":{"11023ec5-d3f9-4571-b97f-e305433ac479":{"description":"Production","url":"https://api.melio.com/v2"},"a9b4dcdc-ad19-4ca1-80f3-760819968e97":{"description":"Staging01","url":"https://api.staging01.melio.com/v2"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"api-key","scopes":[],"schemeName":"ApiKey"},"schema":{"title":"api-key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKey","name":"api-key"}],"title":"ApiKey"}]},"originalFileLocation":"openapi.json"},"subdomain":"melio","siteName":"Melio Payouts API","title":"Update a payment - Melio Payouts API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-11T07:50:54.016Z","originalFileLocation":"api-reference/payments/update-a-payment.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Updates a payment while its status is still scheduled. Once processing has begun, the request returns 409 PAYMENT_NOT_EDITABLE. Once the receiver has upgraded the payment (see receiverUpgrade), it can no longer be updated and the request returns 409 PAYMENT_UPGRADED_BY_RECEIVER. Only the fields you send are changed.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Melio Payouts API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/melio/9sciKkVs_XIsdZmC/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/melio/9sciKkVs_XIsdZmC/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/melio/9sciKkVs_XIsdZmC/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/melio/9sciKkVs_XIsdZmC/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/melio/9sciKkVs_XIsdZmC/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/melio/9sciKkVs_XIsdZmC/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/melio/9sciKkVs_XIsdZmC/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/melio/9sciKkVs_XIsdZmC/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/melio/9sciKkVs_XIsdZmC/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update a payment - Melio Payouts API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Updates a payment while its status is still scheduled. Once processing has begun, the request returns 409 PAYMENT_NOT_EDITABLE. Once the receiver has upgraded the payment (see receiverUpgrade), it can no longer be updated and the request returns 409 PAYMENT_UPGRADED_BY_RECEIVER. Only the fields you send are changed.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Melio Payouts API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.melio.com/docs/api-reference/payments/update-a-payment\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://melio.mintlify.site/docs/_mintlify/api/og/v2?division=Payments\u0026amp;title=Update+a+payment\u0026amp;description=Updates+a+payment+while+its+%60status%60+is+still+%60scheduled%60.+Once+processing+has+begun%2C+the+request+returns+%60409+PAYMENT_NOT_EDITABLE%60.+Once+the+receiver+has+upgr\u0026amp;theme=840e77e176f335a47137ea1a\u0026amp;signature=6582a2a4748822fe954f80b554fbafb3287c7af5995318291573248640250d5b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update a payment - Melio Payouts API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Updates a payment while its status is still scheduled. Once processing has begun, the request returns 409 PAYMENT_NOT_EDITABLE. Once the receiver has upgraded the payment (see receiverUpgrade), it can no longer be updated and the request returns 409 PAYMENT_UPGRADED_BY_RECEIVER. Only the fields you send are changed.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://melio.mintlify.site/docs/_mintlify/api/og/v2?division=Payments\u0026amp;title=Update+a+payment\u0026amp;description=Updates+a+payment+while+its+%60status%60+is+still+%60scheduled%60.+Once+processing+has+begun%2C+the+request+returns+%60409+PAYMENT_NOT_EDITABLE%60.+Once+the+receiver+has+upgr\u0026amp;theme=840e77e176f335a47137ea1a\u0026amp;signature=6582a2a4748822fe954f80b554fbafb3287c7af5995318291573248640250d5b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/melio/9sciKkVs_XIsdZmC/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Melio Payouts API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7849ff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.melio.com/docs/api-reference/payments/update-a-payment\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/payments/update-a-payment.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.melio.com/#organization\",\"name\":\"Melio Payouts API\",\"url\":\"https://developers.melio.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/melio/xvWXKzlr8EBNoRDW/images/melio-wordmark.svg?fit=max\u0026auto=format\u0026n=xvWXKzlr8EBNoRDW\u0026q=85\u0026s=64c5b00a44de83a5745e570ecf3d0fc2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.melio.com/docs#website\",\"name\":\"Melio Payouts API\",\"url\":\"https://developers.melio.com/docs\",\"publisher\":{\"@id\":\"https://developers.melio.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.melio.com/docs/api-reference/payments/update-a-payment#webpage\",\"url\":\"https://developers.melio.com/docs/api-reference/payments/update-a-payment\",\"name\":\"Update a payment\",\"description\":\"Updates a payment while its status is still scheduled. Once processing has begun, the request returns 409 PAYMENT_NOT_EDITABLE. Once the receiver has upgraded the payment (see receiverUpgrade), it can no longer be updated and the request returns 409 PAYMENT_UPGRADED_BY_RECEIVER. Only the fields you send are changed.\",\"dateModified\":\"2026-11-11T07:50:54.016Z\",\"isPartOf\":{\"@id\":\"https://developers.melio.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://developers.melio.com/docs/api-reference/payments/update-a-payment#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.melio.com/docs/api-reference/payments/update-a-payment#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Payments\",\"item\":\"https://developers.melio.com/docs/api-reference/payments/list-payments\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Update a payment\",\"item\":\"https://developers.melio.com/docs/api-reference/payments/update-a-payment\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.melio.com/docs/api-reference/payments/update-a-payment#apireference\",\"headline\":\"Update a payment\",\"name\":\"Update a payment\",\"description\":\"Updates a payment while its status is still scheduled. Once processing has begun, the request returns 409 PAYMENT_NOT_EDITABLE. Once the receiver has upgraded the payment (see receiverUpgrade), it can no longer be updated and the request returns 409 PAYMENT_UPGRADED_BY_RECEIVER. Only the fields you send are changed.\",\"url\":\"https://developers.melio.com/docs/api-reference/payments/update-a-payment\",\"mainEntityOfPage\":{\"@id\":\"https://developers.melio.com/docs/api-reference/payments/update-a-payment#webpage\"},\"dateModified\":\"2026-11-11T07:50:54.016Z\",\"publisher\":{\"@id\":\"https://developers.melio.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.melio.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Melio Payouts API\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Melio Payouts API\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/api-reference/payments/update-a-payment.md","siteName":"Melio Payouts API","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/Introduction"}]},{"tab":"API Reference","groups":[{"group":"Entities","pages":[{"title":"List entities","deprecated":null,"version":null,"openapi":"/openapi.json get /entities","href":"/api-reference/entities/list-entities"},{"title":"Create an entity","deprecated":null,"version":null,"openapi":"/openapi.json post /entities","href":"/api-reference/entities/create-an-entity"},{"title":"Get an entity","deprecated":null,"version":null,"openapi":"/openapi.json get /entities/{entityId}","href":"/api-reference/entities/get-an-entity"},{"title":"Update an entity","deprecated":null,"version":null,"openapi":"/openapi.json patch /entities/{entityId}","href":"/api-reference/entities/update-an-entity"},{"title":"List beneficial owners","deprecated":null,"version":null,"openapi":"/openapi.json get /entities/{entityId}/beneficial-owners","href":"/api-reference/entities/list-beneficial-owners"},{"title":"Replace beneficial owners","deprecated":null,"version":null,"openapi":"/openapi.json put /entities/{entityId}/beneficial-owners","href":"/api-reference/entities/replace-beneficial-owners"},{"title":"Get limitations","deprecated":null,"version":null,"openapi":"/openapi.json get /limitations","href":"/api-reference/entities/get-limitations"}]},{"group":"Accounts","pages":[{"title":"List accounts","deprecated":null,"version":null,"openapi":"/openapi.json get /accounts","href":"/api-reference/accounts/list-accounts"},{"title":"Create an account","deprecated":null,"version":null,"openapi":"/openapi.json post /accounts","href":"/api-reference/accounts/create-an-account"},{"title":"Create a link to add a Plaid or card account","deprecated":null,"version":null,"openapi":"/openapi.json post /accounts/link","href":"/api-reference/accounts/create-a-link-to-add-a-plaid-or-card-account"},{"title":"Get an account","deprecated":null,"version":null,"openapi":"/openapi.json get /accounts/{accountId}","href":"/api-reference/accounts/get-an-account"},{"title":"Delete an account","deprecated":null,"version":null,"openapi":"/openapi.json delete /accounts/{accountId}","href":"/api-reference/accounts/delete-an-account"},{"title":"Create a link to verify a Plaid account","deprecated":null,"version":null,"openapi":"/openapi.json post /accounts/{accountId}/verify/link","href":"/api-reference/accounts/create-a-link-to-verify-a-plaid-account"}]},{"group":"Attachments","pages":[{"title":"Upload an attachment","deprecated":null,"version":null,"openapi":"/openapi.json post /attachments","href":"/api-reference/attachments/upload-an-attachment"}]},{"group":"Payments","pages":[{"title":"List payments","deprecated":null,"version":null,"openapi":"/openapi.json get /payments","href":"/api-reference/payments/list-payments"},{"title":"Create a payment","deprecated":null,"version":null,"openapi":"/openapi.json post /payments","href":"/api-reference/payments/create-a-payment"},{"title":"Get a payment","description":"Returns a single payment by its Melio id (`pay_\u003cid>`). To look one up by your own identifier instead, list payments with `?externalId=`.\n","deprecated":null,"version":null,"openapi":"/openapi.json get /payments/{paymentId}","href":"/api-reference/payments/get-a-payment"},{"title":"Update a payment","deprecated":null,"version":null,"openapi":"/openapi.json patch /payments/{paymentId}","href":"/api-reference/payments/update-a-payment"},{"title":"Cancel a payment","description":"Cancels a payment while its `status` is still `scheduled` — i.e. before it begins processing. The payment moves to `status: canceled` and the response is `200`.\n\nThe one exception is a check that has already been issued but has not yet cleared: canceling it voids the check and refunds the originating account. That runs asynchronously, so the response is `202` and the payment keeps its current `status` until the void completes — poll the payment to observe the result. A check that has already cleared cannot be voided.\n\nIn every other case, once processing has begun, the request returns `409 PAYMENT_NOT_CANCELABLE`.\n","deprecated":null,"version":null,"openapi":"/openapi.json post /payments/{paymentId}/cancel","href":"/api-reference/payments/cancel-a-payment"},{"title":"Simulate a payment action","deprecated":null,"version":null,"openapi":"/openapi.json post /simulations/payments/{paymentId}/actions","href":"/api-reference/payments/simulate-a-payment-action"}]},{"group":"Tools","pages":[{"title":"Calculate fees","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/fee-calculator","href":"/api-reference/tools/calculate-fees"},{"title":"Quote a currency conversion","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/fx-quote","href":"/api-reference/tools/quote-a-currency-conversion"},{"title":"Check fast payment eligibility","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/fast-payment-eligibility","href":"/api-reference/tools/check-fast-payment-eligibility"},{"title":"Estimate delivery dates","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/delivery-eta","href":"/api-reference/tools/estimate-delivery-dates"}]}]}]},"basePath":"","title":"Update a payment - Melio Payouts API","buildId":"dpl_Aw98ji4XvBsgtZwL1VrkUF9ehFqz","deploymentId":"dpl_Aw98ji4XvBsgtZwL1VrkUF9ehFqz","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-CQGbdtm4.js","utils-D88A1f-Z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChqWdz1A.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-yBrxdh_6.js","snippetPresets-BgqDrFJC.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-C2-BijcO.js","ApiExamples-Duxc2rZw.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C7jidOil.js","shallow-xkjpHm-U.js","getApiPlaygroundDisplay-fE3rVpvL.js","CodeSnippet-LgxljKed.js","CodeSnippets-D-pXWDHq.js","getPastedJson-CLRcu-uo.js","icon-Cxirpjgo.js","MethodPill-D49eqY5e.js","DuplicateIcon-CivCz5Rp.js","createIcon-D71qL3f5.js","DynamicMarkdown-BcGRTrw6.js","SectionHeading-DzaqmmSD.js","axios-vUo_bRtp.js","Markdown-CZqUYmMp.js","clsx-B6IZIRsp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-B0ZV6X5T.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-MqLyPtsW.js"]}