Recovery flow step
curl --request POST \
--url https://prod-auth.tktchurch.com/oauth/recovery/step \
--header 'Content-Type: application/json' \
--data '
{
"session_id": "<string>",
"step": "<string>"
}
'import Foundation
let parameters = [
"session_id": "<string>",
"step": "<string>"
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://prod-auth.tktchurch.com/oauth/recovery/step")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = ["Content-Type": "application/json"]
request.httpBody = postData
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({session_id: '<string>', step: '<string>'})
};
fetch('https://prod-auth.tktchurch.com/oauth/recovery/step', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://prod-auth.tktchurch.com/oauth/recovery/step"
payload = {
"session_id": "<string>",
"step": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"session_id": "flw_9F8e7D6c5B4a",
"status": "awaiting_password",
"current_step": "password",
"expires_at": "2026-09-22T14:40:00Z"
}{
"error": "invalid_request",
"error_description": "Redirect URI not registered for this client"
}Recovery flow step
Submit one step (identifier, password, MFA/WebAuthn, verification).
POST
/
oauth
/
recovery
/
step
Recovery flow step
curl --request POST \
--url https://prod-auth.tktchurch.com/oauth/recovery/step \
--header 'Content-Type: application/json' \
--data '
{
"session_id": "<string>",
"step": "<string>"
}
'import Foundation
let parameters = [
"session_id": "<string>",
"step": "<string>"
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://prod-auth.tktchurch.com/oauth/recovery/step")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = ["Content-Type": "application/json"]
request.httpBody = postData
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({session_id: '<string>', step: '<string>'})
};
fetch('https://prod-auth.tktchurch.com/oauth/recovery/step', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://prod-auth.tktchurch.com/oauth/recovery/step"
payload = {
"session_id": "<string>",
"step": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"session_id": "flw_9F8e7D6c5B4a",
"status": "awaiting_password",
"current_step": "password",
"expires_at": "2026-09-22T14:40:00Z"
}{
"error": "invalid_request",
"error_description": "Redirect URI not registered for this client"
}