
# Choisir une organisation

`POST /fapi/v1/authorization-requests/{authorization_request_id}:select-organization` · appelé depuis l'hôte de connexion de l'environnement

Lie à la demande d'autorisation l'organisation que l'utilisateur a choisie sur le sélecteur hébergé. Le serveur vérifie de nouveau le choix. Il n'est accepté que si `organization_id` figure dans la liste de [Lister les organisations au choix](/docs/api/fapi/authorization-requests/organizations/list) pour cet utilisateur et cette application au moment de l'appel. Toute autre valeur reçoit `422 validation_failed` et rien n'est lié, y compris dans les cas suivants :

- une organisation d'un autre utilisateur
- une organisation d'un autre environnement
- une organisation où l'application n'est pas activée
- un identifiant mal formé

En cas de succès, l'organisation est écrite une seule fois dans la demande et ne peut plus changer. La réponse contient `continue_url`, l'URL de reprise du point de terminaison d'autorisation. Le navigateur s'y rend et l'autorisation se poursuit avec l'organisation liée.

Les conditions de la demande et la réponse `404` sont les mêmes que pour la liste. Nécessite le cookie `__Host-idp_session` de l'utilisateur authentifié ; si le cookie est absent, expiré ou révoqué, renvoie `401 unauthenticated`.

## Requête

Paramètre de chemin :

| Paramètre | Description |
| --- | --- |
| `authorization_request_id` | La valeur `authorization_request` de l'URL du sélecteur (`azr_…`). |

En-têtes :

| En-tête | Requis | Description |
| --- | --- | --- |
| `Idp-Client` | oui | Identifiant du SDK. |
| `Origin` | oui | Doit être exactement `https://<hôte de connexion>`. |
| `Content-Type` | oui | `application/json`. |

Corps :

| Champ | Type | Requis | Description |
| --- | --- | --- | --- |
| `organization_id` | string | oui | L'`id` d'une organisation listée (`org_…`). |

## Réponse

`200 OK` :

| Champ | Type | Description |
| --- | --- | --- |
| `continue_url` | string | Où le navigateur poursuit : l'URL de reprise du point de terminaison d'autorisation. |

```json
{"continue_url": "/oauth2/authorize/resume?authorization_request=azr_01jbz6x8kq3m2n4p5r6s7t8v9w"}
```

## Erreurs

| Statut | Code | Quand |
| --- | --- | --- |
| 400 | `malformed_request` | Le corps n'est pas un JSON valide. |
| 400 | `unknown_field` | Le corps contient un champ autre que `organization_id`. |
| 401 | `unauthenticated` | Aucun cookie de session valide. |
| 403 | `origin_not_allowed` | `Origin` est absent ou incorrect. |
| 404 | `not_found` | La demande est mal formée, inconnue, expirée, terminée, ouverte sur un autre hôte ou dans un autre navigateur. |
| 409 | `conflict` | La demande a déjà une organisation. |
| 413 | `payload_too_large` | Le corps est trop volumineux. |
| 415 | `unsupported_media_type` | `Content-Type` n'est pas `application/json`. |
| 422 | `validation_failed` | `organization_id` est absent ou ne fait pas partie des organisations listées. |
| 503 | `temporarily_unavailable` | La liste des organisations n'a pas pu être lue. |

## Exemple

```bash
curl -X POST https://example.keenauth.app/fapi/v1/authorization-requests/azr_01jbz6x8kq3m2n4p5r6s7t8v9w:select-organization \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -H "Content-Type: application/json" \
  -b cookies.txt \
  -d '{"organization_id": "org_01jbz6x8kq3m2n4p5r6s7t8v9w"}'
```
