# RevCent MCP Operation: `EditPayPalAccount`

This document explains how MCP/AI clients should use the `EditPayPalAccount` operation in RevCent.

`EditPayPalAccount` edits an existing PayPal Account using the PayPal Account ID. Only include the properties that should be modified.

Before editing PayPal Accounts, MCP/AI should read the PayPal Account overview:

```text
https://revcent.com/documentation/markdown/mcp/operation/OverviewPayPalAccount.md
```

The overview explains what PayPal Accounts are, why ecommerce businesses should integrate PayPal with RevCent, and how PayPal transaction, dispute, refund, tracking, campaign, shop, support, AI, and reporting workflows fit together.

Sources:
- RevCent MCP/API schema for `EditPayPalAccount`
- RevCent MCP/API schema for `GetPayPalAccount`
- RevCent MCP/API schema for `GetPayPalAccounts`
- RevCent MCP/API schema for `CreateSecureForm`
- RevCent MCP/API schema for `CreatePayPalAccount`
- RevCent PayPal Account overview: `https://revcent.com/documentation/markdown/mcp/operation/OverviewPayPalAccount.md`

---

## Operation Summary

`EditPayPalAccount` updates an existing PayPal Account.

Use this operation when:

```text
The PayPal Account already exists.
The user wants to change the account name or description.
The user wants to enable or disable the PayPal Account.
The user wants to update the PayPal account email.
The user wants to change the associated campaign.
The user wants to change third-party shop associations.
The user wants to change transaction confirmation behavior.
The user wants to change shipment tracking update behavior.
The user wants to update PayPal credentials securely.
```

Important:

```text
Only include the properties you wish to modify.
Do not resend unchanged fields unless intentionally updating them.
Do not include unknown fields.
```

`EditPayPalAccount` is a partial update operation.

---

# Read the PayPal Account Overview First

MCP/AI should read the PayPal Account overview before editing PayPal Accounts:

```text
https://revcent.com/documentation/markdown/mcp/operation/OverviewPayPalAccount.md
```

The overview explains:

```text
What PayPal Accounts are.
Why PayPal integration matters for ecommerce.
How PayPal transactions and disputes are pulled into RevCent.
How PayPal refunds can be processed through RevCent.
How RevCent can add tracking information to PayPal transactions.
How campaigns and third-party shops affect PayPal transaction attribution.
How PayPal data fits into support, fulfillment, AI, metadata, and BigQuery reporting.
```

This operation guide focuses on the `EditPayPalAccount` request itself.

---

# Partial Update Behavior

`EditPayPalAccount` should only include fields that are being changed.

For example, if the user only wants to change the description, send:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "description": "Updated description."
}
```

Do not send every existing field unless the user explicitly wants all of those fields updated.

This matters because sending unnecessary fields can accidentally overwrite existing settings.

Correct:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "enabled": false
}
```

Incorrect:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "name": "Old Name",
  "description": "Old Description",
  "enabled": false,
  "campaign": "OldCampaignId",
  "third_party_shop": []
}
```

The incorrect example may accidentally clear shop associations or preserve stale settings that should have been reviewed.

---

# Schema Overview

Input fields:

| Field | Type | Required | Description |
|---|---:|---:|---|
| `paypal_account_id` | string | Yes | 20-character PayPal Account ID to edit. |
| `name` | string | No | New unique PayPal Account name. |
| `description` | string | No | New PayPal Account description. |
| `enabled` | boolean | No | Whether the PayPal Account is enabled. |
| `paypal_account_email` | string | No | Email associated with the PayPal account in PayPal. |
| `campaign` | string | No | 20-character campaign ID associated with the PayPal Account. Applies to PayPal transactions associated with this account. |
| `third_party_shop` | array<string> | No | Array of 20-character user shop IDs associated with this PayPal Account. |
| `transaction_confirmation` | boolean | No | Whether PayPal transaction confirmation is required before marking the sale paid. Recommended `false`. |
| `add_tracking` | boolean | No | Whether RevCent should add shipment tracking information to PayPal transactions when shipments are shipped. Recommended `true`. |
| `secure_form_id` | string | No | Only provide when changing PayPal credentials. Must come from `CreateSecureForm`. |

Schema rule:

```text
additionalProperties = false
```

Do not include unknown fields.

---

# Required Field: `paypal_account_id`

`paypal_account_id` is always required.

Example:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX"
}
```

MCP/AI should not guess the PayPal Account ID.

If the user only provides a name or email, use:

```text
GetPayPalAccounts
```

to find the correct PayPal Account, then confirm the account before editing.

---

# Get the Existing PayPal Account First

Before editing, MCP/AI should usually retrieve the current account state with:

```text
GetPayPalAccount
```

This helps avoid accidental changes.

Use `GetPayPalAccount` to review:

```text
Current name.
Current description.
Current enabled status.
Current PayPal account email.
Current PayPal account app ID.
Current campaign.
Current third-party shop associations.
Current transaction_confirmation value.
Current add_tracking value.
```

Recommended workflow:

```text
1. Identify the PayPal Account ID.
2. Call GetPayPalAccount.
3. Compare current settings to requested changes.
4. Build an EditPayPalAccount request containing only changed fields.
5. If credentials are changing, create and complete a secure form first.
6. Call EditPayPalAccount.
7. Return the updated paypal_account_id and result.
```

---

# Field: `name`

`name` updates the internal RevCent PayPal Account name.

Rules:

```text
Must be unique from other PayPal Account names.
Should be descriptive.
Should help identify the brand, store, region, or account purpose.
```

Good examples:

```text
Main PayPal - US Store
Brand A PayPal - WooCommerce
Brand B PayPal - EU
PayPal - Supplements Store
```

Poor examples:

```text
PayPal
Main
Account
Test
New
```

Before changing a name, MCP/AI should use `GetPayPalAccounts` if needed to avoid duplicate names.

Example:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "name": "Brand A PayPal - WooCommerce"
}
```

---

# Field: `description`

`description` updates the internal description.

Use it to explain the account's purpose.

Example:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "description": "Primary PayPal account for Brand A WooCommerce storefront."
}
```

Good descriptions include:

```text
Which brand/store uses the account.
Which campaign or region it supports.
Whether it is primary, backup, or pending launch.
Any operational caveat.
```

---

# Field: `enabled`

`enabled` controls whether the PayPal Account is active in RevCent.

Example enable request:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "enabled": true
}
```

Example disable request:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "enabled": false
}
```

Use `enabled = true` when:

```text
The PayPal Account credentials are valid.
The campaign association is correct.
The third-party shop associations are correct.
The account is ready to handle or link PayPal activity.
```

Use `enabled = false` when:

```text
Credentials are invalid.
The account is being replaced.
The account should not be used during migration.
The account is pending review.
The store/brand no longer uses this PayPal Account.
Risk/compliance requires temporary suspension.
```

MCP/AI should not enable a PayPal Account unless the required configuration is known to be correct.

---

# Field: `paypal_account_email`

`paypal_account_email` updates the email associated with the PayPal account in PayPal.

Example:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "paypal_account_email": "payments@example.com"
}
```

MCP/AI should confirm this is the correct PayPal account email for the intended brand/store.

If the email change reflects a different PayPal account rather than a typo correction, MCP/AI should consider whether updating credentials with `secure_form_id` is also required.

---

# Field: `campaign`

`campaign` updates the 20-character Campaign ID associated with the PayPal Account.

Example:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "campaign": "CCCCCCCCCCCCCCCCCCCC"
}
```

The campaign associated with the PayPal Account applies to PayPal transactions associated with this account.

This affects attribution and reporting.

Changing the campaign may affect future PayPal transaction attribution and business reporting.

MCP/AI should be careful because campaign changes can impact:

```text
PayPal revenue by campaign.
PayPal refunds by campaign.
PayPal dispute analysis by campaign.
Campaign performance reporting.
AI/BigQuery analysis.
```

Do not guess the campaign ID.

If the user provides a campaign name, find and confirm the correct campaign ID before editing.

---

# Field: `third_party_shop`

`third_party_shop` updates the array of third-party shops associated with the PayPal Account.

Example:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "third_party_shop": [
    "SSSSSSSSSSSSSSSSSSSS",
    "TTTTTTTTTTTTTTTTTTTT"
  ]
}
```

Important:

```text
This field represents the array of shops to associate with the PayPal Account.
When editing, provide the intended final array of shop IDs.
Do not send an empty array unless the user intentionally wants to remove all shop associations.
```

Why this matters:

```text
By associating third-party shops with the PayPal Account, RevCent can correctly link PayPal transactions from those shops to the appropriate PayPal Account in RevCent.
```

Use cases:

```text
Add a new shop that now uses this PayPal Account.
Remove a shop that moved to a different PayPal Account.
Correct a shop-to-PayPal mismatch.
Support multiple storefronts using the same PayPal Account.
```

Do not attach every shop by default.

Only include shops that actually use this PayPal Account.

---

# Field: `transaction_confirmation`

`transaction_confirmation` controls whether RevCent requires PayPal transaction confirmation before marking the sale as paid.

Recommended value:

```json
"transaction_confirmation": false
```

When `false`:

```text
RevCent creates a sale and marks it as paid immediately upon PayPal purchase.
This is recommended.
```

When `true`:

```text
RevCent waits for PayPal transaction confirmation before marking the sale paid.
This can take between 2 and 4 hours because of lag within the PayPal API, not RevCent.
```

Example:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "transaction_confirmation": false
}
```

MCP/AI should generally recommend `false`.

Set `true` only when the user explicitly wants delayed confirmation.

Before setting `true`, explain the operational effect:

```text
Paid status may be delayed.
Fulfillment may be delayed.
Support visibility may be delayed.
Automation depending on paid status may be delayed.
The delay is due to PayPal API lag, not RevCent.
```

---

# Field: `add_tracking`

`add_tracking` controls whether RevCent should add shipment tracking information to respective PayPal transactions when shipments are shipped.

Recommended value:

```json
"add_tracking": true
```

When `true`:

```text
RevCent can add shipment tracking details to PayPal transactions when shipments are shipped.
```

Example:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "add_tracking": true
}
```

This is valuable for ecommerce businesses shipping physical products.

Benefits:

```text
Better PayPal transaction records.
Better delivery evidence.
Better customer transparency.
Better support visibility.
Better PayPal dispute defense.
Reduced friction when customers ask about orders.
```

MCP/AI should usually recommend `true` unless the user explicitly does not want RevCent to update PayPal transactions with tracking.

---

# Field: `secure_form_id`

`secure_form_id` should only be provided if changing PayPal credentials.

Important:

```text
Do not provide secure_form_id unless PayPal credentials are being changed.
```

`secure_form_id` must come from:

```text
CreateSecureForm
```

with:

```json
{
  "form_source": "paypal_account"
}
```

The secure form lets the user provide PayPal credentials without putting sensitive values in chat, logs, or request bodies.

After the user completes the secure form, pass the returned `secure_form_id` to `EditPayPalAccount`.

Example:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "secure_form_id": "FFFFFFFFFFFFFFFFFFFF"
}
```

You may also include other changed non-sensitive settings at the same time if intended:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "paypal_account_email": "new-paypal@example.com",
  "secure_form_id": "FFFFFFFFFFFFFFFFFFFF"
}
```

---

# Credential Update Workflow

When changing PayPal credentials, use this workflow:

```text
1. Call GetPayPalAccount to review the current PayPal Account.
2. Determine that credentials actually need to be changed.
3. Call CreateSecureForm with form_source = paypal_account.
4. Give the form_url to the user.
5. Tell the user the secure form expires after 1 hour.
6. Wait for the user to confirm the secure form is complete.
7. Call EditPayPalAccount with paypal_account_id and secure_form_id.
8. Include any other intended settings changes.
9. Do not include raw credentials.
```

Example `CreateSecureForm` request:

```json
{
  "form_source": "paypal_account"
}
```

Important secure form facts:

```text
Secure form lifespan is 1 hour.
After expiration, the form URL is invalid and saved data is deleted.
The user must be logged into RevCent to access the form.
Once completed, the secure form cannot be modified.
```

If the form expires before completion, create a new secure form.

---

# Output Schema

Successful response can include:

```json
{
  "api_call_id": "XXXXXXXXXXXXXXXXXXXX",
  "api_call_unix": 1770000000,
  "code": 1,
  "paypal_account_id": "YYYYYYYYYYYYYYYYYYYY",
  "result": "..."
}
```

Important fields:

| Field | Meaning |
|---|---|
| `api_call_id` | API Call ID for the edit operation. |
| `api_call_unix` | Unix timestamp when the API call was initiated. |
| `code` | API response code. `1` indicates success. |
| `paypal_account_id` | Edited PayPal Account ID. |
| `result` | Human-readable result message. |

---

# Example: Rename a PayPal Account

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "name": "Brand A PayPal - US Store"
}
```

Use this when only the account name should change.

---

# Example: Update Description

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "description": "Primary PayPal account for Brand A checkout and WooCommerce storefront."
}
```

---

# Example: Disable a PayPal Account

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "enabled": false
}
```

Use this when the account should no longer be active but should remain in RevCent.

Examples:

```text
Credentials need review.
Store moved to another PayPal account.
Migration is in progress.
Risk/compliance review is underway.
```

---

# Example: Enable a PayPal Account

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "enabled": true
}
```

Use this only when the account is ready and properly configured.

---

# Example: Change Campaign

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "campaign": "CCCCCCCCCCCCCCCCCCCC"
}
```

Use only when the campaign association should actually change.

Changing campaign affects future PayPal transaction attribution.

---

# Example: Update Shop Associations

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "third_party_shop": [
    "SSSSSSSSSSSSSSSSSSSS",
    "TTTTTTTTTTTTTTTTTTTT"
  ]
}
```

Use this when the final intended shop association array is known.

Do not send `third_party_shop: []` unless the user wants all shop associations removed.

---

# Example: Change Transaction Confirmation

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "transaction_confirmation": false
}
```

Recommended value is usually `false`.

Only set `true` when the user explicitly wants PayPal confirmation delay behavior.

---

# Example: Enable PayPal Tracking Updates

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "add_tracking": true
}
```

Recommended for businesses that ship physical products.

---

# Example: Update Credentials Only

Step 1: Create secure form.

```json
{
  "form_source": "paypal_account"
}
```

Step 2: User completes secure form.

Step 3: Edit PayPal Account.

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "secure_form_id": "FFFFFFFFFFFFFFFFFFFF"
}
```

---

# Example: Update Email and Credentials

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "paypal_account_email": "new-paypal@example.com",
  "secure_form_id": "FFFFFFFFFFFFFFFFFFFF"
}
```

Use this when the PayPal account email and credentials are changing together.

---

# Example: Multiple Settings Update

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "description": "Updated PayPal account for Brand A US store.",
  "enabled": true,
  "campaign": "CCCCCCCCCCCCCCCCCCCC",
  "third_party_shop": [
    "SSSSSSSSSSSSSSSSSSSS"
  ],
  "transaction_confirmation": false,
  "add_tracking": true
}
```

Use multi-field updates only when all fields are intentionally being changed/reaffirmed.

---

# Recommended Edit Workflow

```text
1. Identify the PayPal Account ID.
2. Retrieve current account using GetPayPalAccount.
3. Understand exactly what the user wants changed.
4. Build request with paypal_account_id and only changed fields.
5. If credentials are being changed:
   - Create secure form.
   - Have user complete form within 1 hour.
   - Include secure_form_id.
6. Review high-impact settings:
   - enabled
   - campaign
   - third_party_shop
   - transaction_confirmation
   - add_tracking
7. Call EditPayPalAccount.
8. Return result and paypal_account_id.
9. Optionally retrieve the account again with GetPayPalAccount to verify final settings.
```

---

# High-Impact Settings

Some PayPal Account fields have broader operational effects.

## `enabled`

Can activate or deactivate the PayPal Account.

## `campaign`

Affects PayPal transaction attribution.

## `third_party_shop`

Affects shop-to-PayPal transaction linking.

## `transaction_confirmation`

Can delay marking PayPal sales as paid by 2 to 4 hours if set to `true`.

## `add_tracking`

Controls whether RevCent adds shipment tracking to PayPal transactions when shipments are shipped.

## `secure_form_id`

Changes PayPal credentials.

MCP/AI should be extra careful when editing these fields.

---

# Credentials Must Not Be Passed Through Chat

Never ask the user to provide PayPal credentials directly in chat.

Wrong:

```text
Please paste your PayPal client secret here.
```

Correct:

```text
Create a secure form and send the user the secure form URL.
```

Credential updates must use:

```text
CreateSecureForm → secure_form_id → EditPayPalAccount
```

---

# Editing vs Creating

Use `EditPayPalAccount` when the PayPal Account already exists.

Use `CreatePayPalAccount` when creating a new connected PayPal Account.

Before creating a new account, MCP/AI should use `GetPayPalAccounts` to check whether an account with the same name/email already exists.

Do not create duplicates when editing is the correct action.

---

# Editing vs Deleting

If the user wants to stop using a PayPal Account, disabling is often safer than deleting.

Use:

```json
{
  "enabled": false
}
```

when the goal is to stop active use but preserve history/configuration.

Use `DeletePayPalAccount` only when the user explicitly wants deletion and understands the business implications.

---

# Third-Party Shop Association Caveat

When editing `third_party_shop`, MCP/AI should treat the provided array as the intended final association list.

If the user says:

```text
Add Shop A to this PayPal account.
```

MCP/AI should first retrieve the existing PayPal Account, then preserve existing shop IDs and append Shop A, unless the user explicitly wants to replace all shops.

Example:

Current shops:

```json
[
  "OLD_SHOP_ID_111111111"
]
```

User wants to add a new shop.

Request should include:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "third_party_shop": [
    "OLD_SHOP_ID_111111111",
    "NEW_SHOP_ID_222222222"
  ]
}
```

Do not accidentally remove existing shops.

---

# Campaign Change Caveat

Changing `campaign` affects attribution.

If the user says:

```text
Move this PayPal account to a new campaign.
```

MCP/AI should explain that future PayPal transactions associated with this account will use the new campaign association.

If historical reports appear different later, the campaign association may be part of the reason.

---

# Transaction Confirmation Caveat

`transaction_confirmation = true` can delay sale paid status by 2 to 4 hours because of PayPal API lag.

Before setting to true, MCP/AI should warn the user that this may delay:

```text
Paid sale status.
Fulfillment.
Shipping.
Customer support visibility.
Automation based on paid sale events.
```

Recommended setting remains:

```text
false
```

---

# Tracking Update Caveat

If `add_tracking = false`, RevCent will not add shipment tracking information to respective PayPal transactions when shipments are shipped.

This can reduce:

```text
PayPal transaction visibility.
Delivery evidence.
Dispute defense.
Customer support context.
```

For physical product ecommerce businesses, recommended setting remains:

```text
true
```

---

# BigQuery and Reporting After Edits

After editing PayPal Account settings, reporting should generally use:

```text
BigQueryRunQuery
```

PayPal reporting can include:

```text
PayPal revenue by account.
PayPal revenue by campaign.
PayPal transactions by shop.
PayPal refund activity.
PayPal dispute activity.
PayPal fee analysis.
PayPal net/gross revenue.
PayPal customer activity.
```

Use:

```text
GetBigQueryTables
```

before writing SQL.

Use `GetPayPalTransactions` only for small paginated retrieval, not reporting or metrics.

---

# Common Mistakes

## Mistake: Sending All Fields Back

Wrong:

```text
Retrieve PayPal account and send the entire object back through EditPayPalAccount.
```

Correct:

```text
Only include paypal_account_id and changed fields.
```

---

## Mistake: Updating Credentials Without Secure Form

Wrong:

```text
Ask user to paste PayPal credentials and include them in the request body.
```

Correct:

```text
Use CreateSecureForm with form_source = paypal_account and pass secure_form_id.
```

---

## Mistake: Including secure_form_id When Credentials Are Not Changing

Wrong:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "description": "New description",
  "secure_form_id": "FFFFFFFFFFFFFFFFFFFF"
}
```

when credentials are not being changed.

Correct:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "description": "New description"
}
```

---

## Mistake: Clearing Shops Accidentally

Wrong:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "third_party_shop": []
}
```

when the user only wanted to add or rename something else.

Correct:

```text
Only include third_party_shop when intentionally changing shop associations.
```

---

## Mistake: Setting Transaction Confirmation True Without Explaining Delay

Wrong:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "transaction_confirmation": true
}
```

without explaining the 2 to 4 hour PayPal API lag.

Correct:

```text
Explain the delay and only set true when explicitly requested.
```

---

## Mistake: Disabling Tracking for Physical Products

Wrong:

```json
{
  "paypal_account_id": "XXXXXXXXXXXXXXXXXXXX",
  "add_tracking": false
}
```

without reason.

Correct:

```text
Recommend add_tracking = true for physical product ecommerce businesses.
```

---

## Mistake: Guessing IDs

Wrong:

```text
Guess paypal_account_id, campaign ID, or shop IDs.
```

Correct:

```text
Retrieve and confirm exact 20-character IDs before editing.
```

---

# MCP/AI Decision Guide

Use `EditPayPalAccount` when:

```text
The PayPal Account already exists.
The user wants to update one or more settings.
The user wants to enable/disable the account.
The user wants to change campaign or shop associations.
The user wants to update PayPal credentials.
The user wants to change transaction confirmation or tracking behavior.
```

Use `GetPayPalAccount` first when:

```text
The current settings are unknown.
The user asks to add/remove shops and existing shop associations must be preserved.
The user is changing a high-impact setting.
The user only provides a PayPal account name/email.
```

Use `CreateSecureForm` when:

```text
PayPal credentials are being changed.
```

Use `CreatePayPalAccount` instead when:

```text
The PayPal Account does not already exist and the user wants to add a new account.
```

---

# Validation Checklist

Before calling `EditPayPalAccount`:

1. `paypal_account_id` is known.
2. `paypal_account_id` is a 20-character PayPal Account ID.
3. The account already exists.
4. Current settings have been reviewed with `GetPayPalAccount` when appropriate.
5. The request includes only fields that should be modified.
6. `name`, if provided, is unique and descriptive.
7. `paypal_account_email`, if provided, is correct.
8. `campaign`, if provided, is a valid 20-character campaign ID.
9. `third_party_shop`, if provided, is the intended final array of shop IDs.
10. Existing shop associations are preserved if the user only wants to add a shop.
11. `enabled`, if provided, is intentional.
12. `transaction_confirmation`, if provided, is intentional and usually `false`.
13. If `transaction_confirmation = true`, the user understands the 2 to 4 hour PayPal API lag.
14. `add_tracking`, if provided, is intentional and usually `true`.
15. If credentials are changing, a secure form was created with `form_source = paypal_account`.
16. If credentials are changing, the user completed the secure form within 1 hour.
17. If credentials are not changing, `secure_form_id` is omitted.
18. No sensitive credentials are included in chat or request bodies.
19. No unknown fields are included.

---

# Key Takeaways

```text
EditPayPalAccount updates an existing PayPal Account.
```

```text
Only paypal_account_id is required.
```

```text
Only include fields that should be modified.
```

```text
Use GetPayPalAccount first when current settings matter.
```

```text
Use CreateSecureForm with form_source = paypal_account when changing credentials.
```

```text
Do not ask users to paste PayPal credentials into chat.
```

```text
transaction_confirmation should usually remain false.
```

```text
add_tracking should usually remain true.
```

```text
Be careful when editing campaign and third_party_shop because they affect PayPal transaction attribution.
```

```text
Read the PayPal Account overview before editing PayPal Accounts:
https://revcent.com/documentation/markdown/mcp/operation/OverviewPayPalAccount.md
```


---
Document Parent Directory
* [Operations](https://revcent.com/documentation/markdown/mcp/operation/index.md) - AI/MCP details and overviews for operations available within the RevCent MCP.