{"openapi":"3.1.0","info":{"title":"Alethica Partner API","version":"1.0.0","description":"Embedded finance API for partner integrations (INNOV-13)."},"servers":[{"url":"https://api.alethica.co/api/v1"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"OAuthTokenResponse":{"type":"object","properties":{"access_token":{"type":"string"},"token_type":{"type":"string","example":"Bearer"},"expires_in":{"type":"integer"},"scope":{"type":"string"}},"required":["access_token","token_type","expires_in","scope"]},"PartnerApplicationCreateRequest":{"type":"object","properties":{"externalApplicationId":{"type":"string"},"application":{"type":"object","description":"Dealer submission payload compatible with internal dealerSubmitLoan schema."}},"required":["externalApplicationId","application"]},"PartnerWebhookEndpoint":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"url":{"type":"string","format":"uri"},"subscribedEvents":{"type":"array","items":{"type":"string"}},"isActive":{"type":"boolean"},"maxRetries":{"type":"integer"},"timeoutMs":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"PartnerSignatureSummary":{"type":"object","properties":{"externalSignatureId":{"type":"string"},"signatureRequestId":{"type":"string","format":"uuid"},"code":{"type":"string"},"type":{"type":"string"},"title":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string"},"documentHash":{"type":"string"},"documentSize":{"type":"integer"},"expiresAt":{"type":"string","format":"date-time","nullable":true},"completedAt":{"type":"string","format":"date-time","nullable":true},"cancelledAt":{"type":"string","format":"date-time","nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"signatures":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string"},"method":{"type":"string"},"signedAt":{"type":"string","format":"date-time","nullable":true},"signerName":{"type":"string"},"signerEmail":{"type":"string","nullable":true}}}}}}}},"paths":{"/partner/oauth/token":{"post":{"summary":"Issue OAuth2 client credentials token","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"grant_type":{"type":"string","enum":["client_credentials"]},"client_id":{"type":"string"},"client_secret":{"type":"string"},"scope":{"type":"string"}},"required":["grant_type","client_id","client_secret"]}},"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"grant_type":{"type":"string","enum":["client_credentials"]},"client_id":{"type":"string"},"client_secret":{"type":"string"},"scope":{"type":"string"}},"required":["grant_type","client_id","client_secret"]}}}},"responses":{"200":{"description":"Token issued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthTokenResponse"}}}}}}},"/partner/applications":{"post":{"summary":"Create partner application","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerApplicationCreateRequest"}}}},"responses":{"200":{"description":"Idempotent replay"},"201":{"description":"Created"}}}},"/partner/applications/{externalApplicationId}":{"get":{"summary":"Get application by partner external ID","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalApplicationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Found"}}}},"/partner/applications/{externalApplicationId}/timeline":{"get":{"summary":"Get application timeline","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalApplicationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Timeline returned"}}}},"/partner/signatures":{"post":{"summary":"Create signature request for a PDF document","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"document":{"type":"string","format":"binary"},"externalSignatureId":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"signers":{"type":"string","description":"JSON string array of signers"},"expiresInDays":{"type":"integer"}},"required":["document","externalSignatureId","title","signers"]}}}},"responses":{"200":{"description":"Idempotent replay"},"201":{"description":"Created"}}},"get":{"summary":"List partner signature requests","security":[{"bearerAuth":[]}],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"status","in":"query","schema":{"type":"string"}},{"name":"type","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"List returned"}}}},"/partner/signatures/{externalSignatureId}":{"get":{"summary":"Get signature request by external signature ID","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalSignatureId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerSignatureSummary"}}}}}}},"/partner/signatures/by-id/{signatureRequestId}":{"get":{"summary":"Get signature request by internal signature request ID","security":[{"bearerAuth":[]}],"parameters":[{"name":"signatureRequestId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Found"}}}},"/partner/signatures/by-id/{signatureRequestId}/evidence":{"get":{"summary":"Get evidence/audit payload for a signature request","security":[{"bearerAuth":[]}],"parameters":[{"name":"signatureRequestId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Evidence returned"}}}},"/partner/signatures/by-id/{signatureRequestId}/document":{"get":{"summary":"Stream original PDF document by signature request ID","security":[{"bearerAuth":[]}],"parameters":[{"name":"signatureRequestId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"PDF stream","content":{"application/pdf":{}}}}}},"/partner/usage/summary":{"get":{"summary":"Get partner usage summary","security":[{"bearerAuth":[]}],"parameters":[{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Usage summary returned"}}}},"/partner/webhooks":{"get":{"summary":"List webhook endpoints","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Webhook endpoints","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PartnerWebhookEndpoint"}}}}}}},"post":{"summary":"Create webhook endpoint","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"subscribedEvents":{"type":"array","items":{"type":"string"}},"signingSecret":{"type":"string"},"maxRetries":{"type":"integer"},"timeoutMs":{"type":"integer"},"isActive":{"type":"boolean"}},"required":["url","subscribedEvents"]}}}},"responses":{"201":{"description":"Webhook endpoint created"}}}},"/partner/webhooks/{id}":{"patch":{"summary":"Update webhook endpoint","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Webhook endpoint updated"}}}},"/partner/webhooks/deliveries":{"get":{"summary":"List webhook delivery attempts","security":[{"bearerAuth":[]}],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"status","in":"query","schema":{"type":"string"}},{"name":"eventType","in":"query","schema":{"type":"string"}},{"name":"endpointId","in":"query","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Delivery attempts returned"}}}},"/partner/webhooks/deliveries/{deliveryId}/retry":{"post":{"summary":"Retry a failed/dead-letter delivery","security":[{"bearerAuth":[]}],"parameters":[{"name":"deliveryId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Delivery queued for retry"}}}},"/partner/widget/sessions":{"post":{"summary":"Create short-lived widget session token","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"origin":{"type":"string","format":"uri"},"prefill":{"type":"object"}},"required":["origin"]}}}},"responses":{"201":{"description":"Widget session created"}}}},"/widget/embed.js":{"get":{"summary":"Widget bootstrap script for partner websites","description":"Load this script with data-session-token and data-container-id attributes.","responses":{"200":{"description":"JavaScript bootstrap returned"}}}},"/widget/applications":{"post":{"summary":"Submit application through widget session token","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sessionToken":{"type":"string"},"externalApplicationId":{"type":"string"},"application":{"type":"object"}},"required":["sessionToken","externalApplicationId","application"]}}}},"responses":{"200":{"description":"Idempotent replay"},"201":{"description":"Application submitted"}}}}}}