Authorize a rule-based account's SCA challenge
Changed onSatisfy the Strong Customer Authentication challenge carried by a RULE_BASED internal account in PENDING status by submitting an ScaAuthorization proof. The challenge authorizes the account's sweep instruction once; later sweeps need no further authorization.
On success the account is returned ACTIVE with its fundingPaymentInstructions, and an INTERNAL_ACCOUNT.STATUS_UPDATED webhook is sent. As with all SCA, check the returned account: if it is still PENDING it carries the next scaChallenge to authorize.
This endpoint is only meaningful for customers in a region where SCA is required (e.g. EU). For other customers, and for accounts with no pending challenge, this returns 409.
In sandbox, the SMS code is always 123456.
Request
- Base URLhttps://api.lightspark.com/grid/2025-10-13
- URLhttps://api.lightspark.com/grid/2025-10-13/internal-accounts/{id}/authorize
- AuthHTTP basic
Request body
Example request
{
"code": "000000",
"origin": "https://app.example.com",
"endUserIpAddress": "203.0.113.42"
}Response
Challenge authorized; the updated account is returned.
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
}
},
"scaChallenge": {
"id": "ScaChallenge:019542f5-b3e7-1d02-0000-000000000007",
"expiresAt": "2025-10-03T12:05:00Z",
"availableFactors": [
"SMS_OTP"
],
"purpose": "PAYOUT",
"passkeyAllowedOrigins": [
"https://app.example.com"
]
},
"strandedBalances": [
{
"amount": 12550,
"currency": {
"code": "USD",
"name": "United States Dollar",
"symbol": "$",
"decimals": 2
}
}
],
"privateEnabled": true,
"cardCapabilities": {
"supportsVelocityLimits": true,
"supportsPanReveal": true,
"supportsDigitalWalletTokenization": true
},
"createdAt": "2025-10-03T12:30:00Z",
"updatedAt": "2025-10-03T12:30:00Z"
}Changes
- info
endpoint added
- info