curl --request PATCH \
--url https://api.lightspark.com/grid/2025-10-13/internal-accounts/{id} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"privateEnabled": true
}
'{
"id": "InternalAccount:019542f5-b3e7-1d02-0000-000000000002",
"customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
"type": "EMBEDDED_WALLET",
"balance": {
"amount": 12550,
"currency": {
"code": "USD",
"name": "United States Dollar",
"symbol": "$",
"decimals": 2
}
},
"fundingPaymentInstructions": [],
"privateEnabled": true,
"createdAt": "2026-04-08T15:30:00Z",
"updatedAt": "2026-04-08T15:35:02Z"
}Update mutable fields on an internal account. Today this supports updating the wallet privacy setting for an Embedded Wallet internal account.
Updating wallet privacy is a two-step signed-retry flow:
Call PATCH /internal-accounts/{id} with the request body { "privateEnabled": true } and no signature headers. Grid returns 202 with payloadToSign, requestId, and expiresAt.
Use the session API keypair of a verified authentication credential on the same internal account to build an API-key stamp over payloadToSign, then retry with that full stamp as the Grid-Wallet-Signature header and the requestId echoed back as the Request-Id header. The retry body must carry the same update fields submitted in step 1. The signed retry returns 200 with the updated internal account.
curl --request PATCH \
--url https://api.lightspark.com/grid/2025-10-13/internal-accounts/{id} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"privateEnabled": true
}
'{
"id": "InternalAccount:019542f5-b3e7-1d02-0000-000000000002",
"customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
"type": "EMBEDDED_WALLET",
"balance": {
"amount": 12550,
"currency": {
"code": "USD",
"name": "United States Dollar",
"symbol": "$",
"decimals": 2
}
},
"fundingPaymentInstructions": [],
"privateEnabled": true,
"createdAt": "2026-04-08T15:30:00Z",
"updatedAt": "2026-04-08T15:35:02Z"
}Documentation Index
Fetch the complete documentation index at: https://ramps-claude-nervous-shannon-b2ad5f.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
API token authentication using format <api token id>:<api client secret>
Full API-key stamp built over the prior payloadToSign with the session API keypair of a verified authentication credential on the target internal account. Required on the signed retry; ignored on the initial call.
The requestId returned in a prior 202 response, echoed back on the signed retry so the server can correlate it with the issued challenge. Required on the signed retry; must be paired with Grid-Wallet-Signature.
The id of the internal account to update.
Partial request body for PATCH /internal-accounts/{id}. At least one update field must be provided. On step 1 of the signed-retry flow Grid binds the submitted update fields into payloadToSign; on step 2 the client echoes the same fields back and Grid applies the update to the internal account.
Whether wallet privacy should be enabled for the Embedded Wallet.
true
Signed retry accepted. Returns the updated internal account.
The ID of the internal account
"InternalAccount:12dcbd6-dced-4ec4-b756-3c3a9ea3d123"
Classification of an internal account.
INTERNAL_FIAT: A Grid-managed fiat holding account (for example, the USD holding account used as the source for Payouts flows).INTERNAL_CRYPTO: A Grid-managed crypto holding account denominated in a stablecoin such as USDC.EMBEDDED_WALLET: A self-custodial Embedded Wallet provisioned for the customer. Outbound transfers require a session signature produced by the customer's device — see the Embedded Wallets guide.INTERNAL_FIAT, INTERNAL_CRYPTO, EMBEDDED_WALLET Show child attributes
Payment instructions for funding the account
Show child attributes
Timestamp when the internal account was created
"2025-10-03T12:30:00Z"
Timestamp when the internal account was last updated
"2025-10-03T12:30:00Z"
The ID of the customer associated with the internal account. If this field is empty, the internal account belongs to the platform.
"Customer:019542f5-b3e7-1d02-0000-000000000001"
Whether wallet privacy is enabled for the Embedded Wallet. Only present for EMBEDDED_WALLET internal accounts.
true
Was this page helpful?