curl --request POST \
--url https://api.entendre.finance/v1/connections/{connection_id}/reauthorize \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'X-API-Key: <api-key>' \
--data '{}'const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
'X-API-Key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({})
};
fetch('https://api.entendre.finance/v1/connections/{connection_id}/reauthorize', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.entendre.finance/v1/connections/{connection_id}/reauthorize"
payload = {}
headers = {
"Idempotency-Key": "<idempotency-key>",
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "con_507f1f77bcf86cd799439011",
"organization_id": "org_507f1f77bcf86cd799439011",
"provider": "quickbooks",
"auth_method": "oauth",
"name": "Operating bank connection",
"status": "pending_setup",
"external_account_id": null,
"legal_entity_ids": [
"le_507f1f77bcf86cd799439011"
],
"source_ids": [],
"capabilities": [
"import_transactions"
],
"authorization_attempt": {
"id": "auth_507f1f77bcf86cd799439011",
"status": "pending",
"setup_url": "https://app.entendre.finance/settings/integrations",
"expires_at": "2026-08-31T12:10:00Z",
"error": null
},
"created_at": "2026-08-31T12:00:00Z",
"guidance": {
"allowed_actions": [],
"warnings": [],
"version": "v_example"
},
"revocation_error": null,
"retained_resources": [
"transactions"
],
"etag": "\"v_example\""
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid path, query or request body.",
"request_id": "req_example"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or expired API Key",
"request_id": "req_example",
"suggested_action": "Send an API key in X-API-Key, or an OAuth access token as Authorization: Bearer. Refresh an expired access token.",
"documentation_url": "https://entendre.ai/docs/get-started/authentication"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient access to organization",
"request_id": "req_example"
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found",
"request_id": "req_example"
}
}{
"error": {
"code": "CONFLICT",
"message": "The resource state does not allow this operation.",
"request_id": "req_example"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 30s.",
"request_id": "req_example"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error",
"request_id": "req_example"
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service unavailable.",
"request_id": "req_example"
}
}Reauthorize connection
Starts the setup to renew the authorization of the same provider account.
curl --request POST \
--url https://api.entendre.finance/v1/connections/{connection_id}/reauthorize \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'X-API-Key: <api-key>' \
--data '{}'const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
'X-API-Key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({})
};
fetch('https://api.entendre.finance/v1/connections/{connection_id}/reauthorize', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.entendre.finance/v1/connections/{connection_id}/reauthorize"
payload = {}
headers = {
"Idempotency-Key": "<idempotency-key>",
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "con_507f1f77bcf86cd799439011",
"organization_id": "org_507f1f77bcf86cd799439011",
"provider": "quickbooks",
"auth_method": "oauth",
"name": "Operating bank connection",
"status": "pending_setup",
"external_account_id": null,
"legal_entity_ids": [
"le_507f1f77bcf86cd799439011"
],
"source_ids": [],
"capabilities": [
"import_transactions"
],
"authorization_attempt": {
"id": "auth_507f1f77bcf86cd799439011",
"status": "pending",
"setup_url": "https://app.entendre.finance/settings/integrations",
"expires_at": "2026-08-31T12:10:00Z",
"error": null
},
"created_at": "2026-08-31T12:00:00Z",
"guidance": {
"allowed_actions": [],
"warnings": [],
"version": "v_example"
},
"revocation_error": null,
"retained_resources": [
"transactions"
],
"etag": "\"v_example\""
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid path, query or request body.",
"request_id": "req_example"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or expired API Key",
"request_id": "req_example",
"suggested_action": "Send an API key in X-API-Key, or an OAuth access token as Authorization: Bearer. Refresh an expired access token.",
"documentation_url": "https://entendre.ai/docs/get-started/authentication"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient access to organization",
"request_id": "req_example"
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found",
"request_id": "req_example"
}
}{
"error": {
"code": "CONFLICT",
"message": "The resource state does not allow this operation.",
"request_id": "req_example"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 30s.",
"request_id": "req_example"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error",
"request_id": "req_example"
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service unavailable.",
"request_id": "req_example"
}
}Authorizations
Your organization API key. See Authentication.
Headers
Unique key for this operation. Retry with the same key and request body after a timeout. Keys are retained for at least 24 hours.
1 - 255Path Parameters
ID of the connection.
1Body
Registered HTTPS return URL.
"https://app.entendre.finance/settings/integrations"
Replacement venue API key.
1Replacement venue API secret.
1Replacement venue API passphrase, for coinbase, coinbase_exchange, coinbase_prime, coinbase_international and kucoin.
1Response
The request succeeded.
Connection ID (con_…).
"con_507f1f77bcf86cd799439011"
Organization ID (org_…).
"org_507f1f77bcf86cd799439011"
Provider identifier.
"quickbooks"
Setup method.
oauth, api_key Connection display name.
Connection status.
pending_setup, active, expired, disconnecting, disconnected, failed Account ID at the provider.
Legal entities of the connection (le_…).
Legal entity ID (le_…).
Sources created from the connection.
Source ID (src_…).
Actions that the connection supports.
Supported action.
ISO 8601 UTC timestamp.
"2026-08-31T12:00:00Z"
Show child attributes
Show child attributes
Strong version of this resource. Send this value, including its quotes, in If-Match when updating it.
^"[^"\r\n]+"$"\"v_example\""
The latest setup attempt.
Show child attributes
Show child attributes
Why the provider did not revoke access. A disabled connection in Entendre does not prove that the provider revoked access.
Resource types that stay after a disconnect.
Resource types retained after disconnect.
Present after bank disconnect. Counts rows removed by this call. Zero is valid for empty or already-cleaned connections.
Show child attributes
Show child attributes
General-ledger connections only: the resource types that the connection can import.