Update internal account
Changed onUpdate 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.
Request
- Base URLhttps://api.lightspark.com/grid/2025-10-13
- URLhttps://api.lightspark.com/grid/2025-10-13/internal-accounts/{id}
- AuthHTTP basic
Headers
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.
Request body
Example request
{
"privateEnabled": true
}Response
Signed retry accepted. Returns the updated internal account.
Example response
{
"id": "InternalAccount:12dcbd6-dced-4ec4-b756-3c3a9ea3d123",
"customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
"status": "ACTIVE",
"balance": {
"amount": 12550,
"currency": {
"code": "USD",
"name": "United States Dollar",
"symbol": "$",
"decimals": 2
}
},
"totalBalance": {
"amount": 12550,
"currency": {
"code": "USD",
"name": "United States Dollar",
"symbol": "$",
"decimals": 2
}
},
"fundingPaymentInstructions": [
{
"instructionsNotes": "Please ensure the reference code is included in the payment memo/description field",
"isPlatformAccount": true,
"accountOrWalletInfo": {
"accountType": "USD_ACCOUNT",
"accountNumber": "1234567890",
"routingNumber": "021000021",
"bankName": "Chase Bank",
"intermediaryBankName": "JPMorgan Chase Bank",
"intermediaryRoutingNumber": "021000021",
"fiToFiInformation": "/BNF/Invoice 4471",
"bankAccountType": "CHECKING"
}
}
],
"onBehalfOfCustomerId": "Customer:019542f5-b3e7-1d02-0000-000000000002",
"label": "invoice-4417",
"sweepRule": {
"destination": {
"accountId": "ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123",
"paymentRail": "ACH"
},
"minimumAmount": {
"amount": 12550,
"currency": {
"code": "USD",
"name": "United States Dollar",
"symbol": "$",
"decimals": 2
}
},
"maximumAmount": {
"amount": 12550,
"currency": {
"code": "USD",
"name": "United States Dollar",
"symbol": "$",
"decimals": 2
}
},
"description": "Rent sweep",
"remittanceInformation": "Unit 4B March",
"platformFeeOverride": {
"platformFixedFee": {
"amount": 50,
"currency": "USD"
},
"platformVariableFeeBps": 30
}
},
"privateEnabled": true,
"cardCapabilities": {
"supportsVelocityLimits": true,
"supportsPanReveal": true,
"supportsDigitalWalletTokenization": true
},
"createdAt": "2025-10-03T12:30:00Z",
"updatedAt": "2025-10-03T12:30:00Z"
}Changes
- info
added the optional property
/to the response with the status - info
added the optional property
/to the response with the status
- info
- breaking
removed the required property
/from the response with the status - breaking
removed the required property
/from the response with the status - breaking
removed the required property
/from the response with the status - info
added the required property
/to the response with the status
- breaking