Changing Payout Configuration
A seller used to get paid directly. Now they want everything via escrow with a small platform fee. This change applies to future invoices only — existing invoices keep their original payout behavior.
What You'll Learn
- Update an existing profile's collection mode
- Add or modify payout splits
- Understand how changes affect existing vs new invoices
Step 1: Update Profile to Escrow Mode
Change the collection mode and escrow address:
PUT
/api/v1/invoicing-profiles/{profile_id}import requestsurl = "https://api.orvion.com/api/v1/invoicing-profiles/profile_01HXYZ123ABC"headers = {"Authorization": "Bearer your-api-key","Content-Type": "application/json"}data = {"collection_mode": "escrow","pay_to_address": "0xMESHPAY_ESCROW_BASE","escrow_address": "0xMESHPAY_ESCROW_BASE"}response = requests.put(url, json=data, headers=headers)profile = response.json()print(f"Updated profile: {profile['collection_mode']}")
Response:
{
"id": "profile_01HXYZ123ABC",
"name": "Data Sales – Base USDC",
"collection_mode": "escrow",
"pay_to_address": "0xMESHPAY_ESCROW_BASE",
"escrow_address": "0xMESHPAY_ESCROW_BASE",
"is_active": true,
"updated_at": "2025-01-20T14:30:00Z",
...
}
Step 2: Add Payout Splits
Configure a 95/5 split (seller gets 95%, platform gets 5%):
PUT
/api/v1/invoicing-profiles/{profile_id}/splitsimport requestsurl = "https://api.orvion.com/api/v1/invoicing-profiles/profile_01HXYZ123ABC/splits"headers = {"Authorization": "Bearer your-api-key","Content-Type": "application/json"}splits = [{"beneficiary_address": "0xSELLER_BASE_WALLET","label": "merchant","share_type": "percentage","share_value": 95.0,"priority": 1},{"beneficiary_address": "0xMESHPAY_PLATFORM_WALLET","label": "platform_fee","share_type": "percentage","share_value": 5.0,"priority": 2}]response = requests.put(url, json=splits, headers=headers)result = response.json()print(f"Configured {len(result)} splits")
Response:
[
{
"id": "split_01HNEWSPLIT1",
"profile_id": "profile_01HXYZ123ABC",
"beneficiary_address": "0xSELLER_BASE_WALLET",
"label": "merchant",
"share_type": "percentage",
"share_value": "95.00",
"priority": 1,
"created_at": "2025-01-20T14:35:00Z"
},
{
"id": "split_01HNEWSPLIT2",
"profile_id": "profile_01HXYZ123ABC",
"beneficiary_address": "0xMESHPAY_PLATFORM_WALLET",
"label": "platform_fee",
"share_type": "percentage",
"share_value": "5.00",
"priority": 2,
"created_at": "2025-01-20T14:35:00Z"
}
]
Step 3: Verify Configuration
Get the complete profile with splits:
GET
/api/v1/invoicing-profiles/{profile_id}/with-splitscURL
curl -X GET https://api.orvion.com/api/v1/invoicing-profiles/profile_01HXYZ123ABC/with-splits \-H "Authorization: Bearer your-api-key"
Response:
{
"id": "profile_01HXYZ123ABC",
"name": "Data Sales – Base USDC",
"network": "base-mainnet",
"asset": "USDC",
"collection_mode": "escrow",
"pay_to_address": "0xMESHPAY_ESCROW_BASE",
"escrow_address": "0xMESHPAY_ESCROW_BASE",
"is_active": true,
"splits": [
{
"beneficiary_address": "0xSELLER_BASE_WALLET",
"label": "merchant",
"share_type": "percentage",
"share_value": "95.00",
"priority": 1
},
{
"beneficiary_address": "0xMESHPAY_PLATFORM_WALLET",
"label": "platform_fee",
"share_type": "percentage",
"share_value": "5.00",
"priority": 2
}
]
}
How Changes Affect Invoices
Existing Invoices
Old invoices keep their original payout behavior:
- They have their own
invoice_payout_splitssnapshot - Profile changes do not affect them
- Payments continue to flow as originally configured
New Invoices
New invoices use the updated configuration:
- Created with escrow collection mode
- Splits snapshot from the updated profile
- 95% to seller, 5% to platform
Alternative: Create a New Profile
Instead of modifying an existing profile, you can create a dedicated profile:
cURL
curl -X POST https://api.orvion.com/api/v1/invoicing-profiles \-H "Authorization: Bearer your-api-key" \-H "Content-Type: application/json" \-d '{"name": "Data Sales – Base USDC (Escrow 95/5)","network": "base-mainnet","asset": "USDC","pay_to_address": "0xMESHPAY_ESCROW_BASE","escrow_address": "0xMESHPAY_ESCROW_BASE","collection_mode": "escrow","supports_partial_payments": false,"is_default": true}'
Then configure splits on the new profile. This approach:
- Keeps the old profile intact for reference
- Makes it easy to switch between configurations
- Provides clear separation between direct and escrow invoices
Modifying Splits Later
To update split percentages, call PUT /splits again with the new configuration:
cURL
curl -X PUT https://api.orvion.com/api/v1/invoicing-profiles/profile_01HXYZ123ABC/splits \-H "Authorization: Bearer your-api-key" \-H "Content-Type: application/json" \-d '[{"beneficiary_address": "0xSELLER_BASE_WALLET","label": "merchant","share_type": "percentage","share_value": 92.0,"priority": 1},{"beneficiary_address": "0xMESHPAY_PLATFORM_WALLET","label": "platform_fee","share_type": "percentage","share_value": 8.0,"priority": 2}]'
This replaces all existing splits with the new configuration.
Next Steps
- Partial Payments - Accept instalments
- Analytics & Reporting - Monitor sales