{"openapi":"3.0.0","paths":{"/ping":{"get":{"operationId":"AppController_ping","parameters":[],"responses":{"200":{"description":"pong"}},"security":[],"summary":"Liveness — process up","tags":["app"]}},"/health":{"get":{"operationId":"AppController_health","parameters":[],"responses":{"200":{"description":"Service joignable"}},"security":[],"summary":"Probe infra (Railway / load balancer)","tags":["app"]}},"/status":{"get":{"operationId":"AppController_status","parameters":[],"responses":{"200":{"description":"Toujours 200 ; lire body.status / acts / infrastructure"}},"security":[],"summary":"Status page — infra + détail par type d’acte","tags":["app"]}},"/v1/me":{"get":{"operationId":"AppController_me","parameters":[],"responses":{"200":{"description":"Clé résolue"},"401":{"description":"Non authentifié"}},"security":[{"bearer":[]}],"summary":"Infos de la clé API authentifiée","tags":["app"]}},"/v1/notorieties":{"post":{"operationId":"NotorietiesController_create","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","example":"idem-notoriety-001"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateNotorietyDto"}}}},"responses":{"200":{"description":"Rejeu idempotent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotorietyResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotorietyResponseDto"}}}},"400":{"description":"Body ou Idempotency-Key invalide"},"401":{"description":"Non authentifié"},"429":{"description":"Rate limit dépassé"}},"security":[{"bearer":[]}],"summary":"Créer une demande d’acte de notoriété (idempotent)","tags":["notorieties"]},"get":{"operationId":"NotorietiesController_list","parameters":[{"name":"cursor","required":false,"in":"query","description":"Curseur de pagination (opaque)","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","description":"Nombre max d’éléments (1–100)","schema":{"minimum":1,"maximum":100,"default":20,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotorietyListResponseDto"}}}},"401":{"description":"Non authentifié"},"429":{"description":"Rate limit dépassé"}},"security":[{"bearer":[]}],"summary":"Lister les notoriétés du partenaire","tags":["notorieties"]}},"/v1/notorieties/{id}/documents":{"post":{"operationId":"NotorietiesController_addDocument","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","example":"idem-doc-001"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateNotorietyDocumentDto"}}}},"responses":{"200":{"description":"Rejeu idempotent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotorietyDocumentResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotorietyDocumentResponseDto"}}}},"400":{"description":"Body invalide"},"401":{"description":"Non authentifié"},"404":{"description":"Notoriété introuvable"},"429":{"description":"Rate limit dépassé"}},"security":[{"bearer":[]}],"summary":"Attacher un document à une notoriété (idempotent)","tags":["notorieties"]},"get":{"operationId":"NotorietiesController_listDocuments","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NotorietyDocumentResponseDto"}}}}},"401":{"description":"Non authentifié"},"404":{"description":"Notoriété introuvable"},"429":{"description":"Rate limit dépassé"}},"security":[{"bearer":[]}],"summary":"Lister les documents d’une notoriété","tags":["notorieties"]}},"/v1/notorieties/{id}":{"get":{"operationId":"NotorietiesController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotorietyResponseDto"}}}},"401":{"description":"Non authentifié"},"404":{"description":"Introuvable (ou autre partenaire)"},"429":{"description":"Rate limit dépassé"}},"security":[{"bearer":[]}],"summary":"Récupérer une notoriété par id","tags":["notorieties"]}}},"info":{"title":"Allaw Partner API","description":"API partenaires Allaw.\n\nAuth : clique **Authorize**, puis colle la valeur complète :\n`Bearer sk_live_…`\n\n(mot `Bearer` + espace + ta clé)","version":"1.0","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"bearer":{"type":"apiKey","in":"header","name":"Authorization","description":"Valeur complète : Bearer sk_live_…"}},"schemas":{"RequesterDto":{"type":"object","properties":{"fullName":{"type":"string","example":"Marie Dupont"},"capacity":{"type":"string","description":"Qualité du demandeur","example":"heir","enum":["heir","notary","lawyer","other"]},"email":{"type":"string","example":"requester@example.com"},"phone":{"type":"string","example":"0612345678"},"birthDate":{"type":"string","example":"1955-06-20"},"birthPlace":{"type":"string","example":"Lyon"}},"required":["fullName","capacity","email"]},"DeceasedPersonDto":{"type":"object","properties":{"fullName":{"type":"string","example":"Jean Dupont"},"birthDate":{"type":"string","example":"1950-03-12"},"birthPlace":{"type":"string","example":"Paris"},"deathDate":{"type":"string","example":"2026-01-15","description":"Date de décès"},"lastAddress":{"type":"string","example":"12 rue de Rivoli, 75001 Paris"}},"required":["fullName"]},"HeirDto":{"type":"object","properties":{"fullName":{"type":"string","example":"Jean Dupont"},"birthDate":{"type":"string","example":"1950-03-12"},"birthPlace":{"type":"string","example":"Paris"},"relationship":{"type":"string","description":"Lien avec le défunt","example":"child","enum":["spouse","child","parent","sibling","other"]},"email":{"type":"string","example":"heir@example.com"}},"required":["fullName"]},"NotorietyDataDto":{"type":"object","properties":{"requester":{"description":"Seul bloc obligatoire à la création","allOf":[{"$ref":"#/components/schemas/RequesterDto"}]},"deceased":{"$ref":"#/components/schemas/DeceasedPersonDto"},"heirs":{"type":"array","items":{"$ref":"#/components/schemas/HeirDto"}},"purpose":{"type":"string","description":"Objet de la demande d’acte de notoriété","example":"Succession — ouverture des comptes bancaires"},"jurisdictionPostalCode":{"type":"string","description":"Code postal du ressort","example":"75001"}},"required":["requester"]},"CreateNotorietyDto":{"type":"object","properties":{"targetOrganizationId":{"type":"string","description":"Override ponctuel de l’organisation / étude Allaw (ex. org_…). Si omis, utilise default_organization_id de la clé API.","example":"org_3EDD2GKNG71h5PXAk266iDk25uK"},"data":{"$ref":"#/components/schemas/NotorietyDataDto"}},"required":["data"]},"NotorietyResponseDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["created","processing","awaiting_notary_validation","completed","rejected"],"example":"created"},"target_organization_id":{"type":"object","nullable":true,"description":"Organisation / étude Allaw cible (ex. org_…)","example":"org_3EDD2GKNG71h5PXAk266iDk25uK"},"data":{"$ref":"#/components/schemas/NotorietyDataDto"},"created_at":{"type":"string","example":"2026-07-22T12:00:00.000Z"},"updated_at":{"type":"string","example":"2026-07-22T12:00:00.000Z"}},"required":["id","status","data","created_at","updated_at"]},"NotorietyListResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/NotorietyResponseDto"}},"next_cursor":{"type":"object","nullable":true}},"required":["data","next_cursor"]},"CreateNotorietyDocumentDto":{"type":"object","properties":{"kind":{"type":"string","enum":["identity","death_certificate","family_record_book","proof_of_address","power_of_attorney","other"],"example":"death_certificate"},"filename":{"type":"string","example":"acte-deces.pdf"},"url":{"type":"string","description":"URL HTTPS du fichier (hébergé par le partenaire / CRM)","example":"https://files.partner.example/docs/acte-deces.pdf"},"content_type":{"type":"string","example":"application/pdf"}},"required":["kind","filename","url"]},"NotorietyDocumentResponseDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"notoriety_id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["identity","death_certificate","family_record_book","proof_of_address","power_of_attorney","other"]},"filename":{"type":"string"},"url":{"type":"string"},"content_type":{"type":"object"},"status":{"type":"string","example":"received"},"created_at":{"type":"string"}},"required":["id","notoriety_id","kind","filename","url","status","created_at"]}}},"security":[{"bearer":[]}]}