openapi: 3.0.3 info: title: Allianz Trade Policy API description: >- Manage your trade credit insurance policy portfolio. Retrieve policy details, create joint insured policies, and manage policy configurations directly from your ERP or credit management system. version: 1.0.0 contact: name: Allianz Trade API Support email: api@allianz-trade.com url: https://developers.allianz-trade.com/ x-generated-from: documentation servers: - url: https://api.allianz-trade.com/v1 description: Allianz Trade API production server security: - OAuth2: [] tags: - name: Policy description: Trade credit insurance policy management operations paths: /policies: get: operationId: listPolicies summary: Allianz Trade List Policies description: Retrieve a paginated list of trade credit insurance policies in your portfolio. tags: - Policy parameters: - name: pageSize in: query required: false description: Number of items per page (Allianz Trade pagination standard) schema: type: integer default: 20 minimum: 1 maximum: 100 example: 20 - name: page in: query required: false description: Page number starting from 1 schema: type: integer default: 1 minimum: 1 example: 1 - name: totalRequired in: query required: false description: Whether to include total count in response headers schema: type: boolean default: false example: false - name: policyStatus in: query required: false description: Filter by policy status schema: type: string enum: - active - suspended - expired - cancelled example: active responses: '200': description: Policies retrieved successfully headers: Total-Items: description: Total number of policies (when totalRequired=true) schema: type: integer Total-Pages: description: Total number of pages (when totalRequired=true) schema: type: integer content: application/json: schema: $ref: '#/components/schemas/PolicyList' examples: ListPolicies200Example: summary: Default listPolicies 200 response x-microcks-default: true value: data: - policyId: "POL-500123" policyNumber: "TC-2026-001" policyHolderName: "Your Company SAS" policyType: trade_credit policyStatus: active currency: EUR maxCoverageAmount: 5000000.00 startDate: "2026-01-01" endDate: "2026-12-31" '401': description: Unauthorized - invalid or missing OAuth2 token content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden - insufficient permissions content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK /policies/{policyId}: get: operationId: getPolicy summary: Allianz Trade Get Policy description: Retrieve full details for a specific trade credit insurance policy by its identifier. tags: - Policy parameters: - name: policyId in: path required: true description: Unique identifier of the policy schema: type: string example: "POL-500123" responses: '200': description: Policy retrieved successfully content: application/json: schema: $ref: '#/components/schemas/Policy' examples: GetPolicy200Example: summary: Default getPolicy 200 response x-microcks-default: true value: policyId: "POL-500123" policyNumber: "TC-2026-001" policyHolderName: "Your Company SAS" policyType: trade_credit policyStatus: active currency: EUR maxCoverageAmount: 5000000.00 coveragePercentage: 90 startDate: "2026-01-01" endDate: "2026-12-31" country: FR createdAt: "2025-12-01T10:00:00Z" '404': description: Policy not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK /policies/{policyId}/joint-insureds: get: operationId: listJointInsureds summary: Allianz Trade List Joint Insureds description: Retrieve joint insured entities registered under a policy. tags: - Policy parameters: - name: policyId in: path required: true description: Unique identifier of the policy schema: type: string example: "POL-500123" - name: pageSize in: query required: false schema: type: integer default: 20 minimum: 1 maximum: 100 example: 20 - name: page in: query required: false schema: type: integer default: 1 minimum: 1 example: 1 - name: totalRequired in: query required: false schema: type: boolean default: false example: false responses: '200': description: Joint insureds retrieved successfully headers: Total-Items: description: Total number of joint insureds (when totalRequired=true) schema: type: integer Total-Pages: description: Total number of pages (when totalRequired=true) schema: type: integer content: application/json: schema: $ref: '#/components/schemas/JointInsuredList' examples: ListJointInsureds200Example: summary: Default listJointInsureds 200 response x-microcks-default: true value: data: - jointInsuredId: "JI-500123" policyId: "POL-500123" companyName: "Subsidiary Corp SAS" registrationNumber: "FR987654321" country: FR status: active '404': description: Policy not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: addJointInsured summary: Allianz Trade Add Joint Insured description: Add a joint insured entity to a trade credit insurance policy. tags: - Policy parameters: - name: policyId in: path required: true description: Unique identifier of the policy schema: type: string example: "POL-500123" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddJointInsuredRequest' examples: AddJointInsuredRequestExample: summary: Default addJointInsured request x-microcks-default: true value: companyName: "Subsidiary Corp SAS" registrationNumber: "FR987654321" country: FR responses: '202': description: Joint insured addition accepted for processing content: application/json: schema: $ref: '#/components/schemas/JobResponse' examples: AddJointInsured202Example: summary: Default addJointInsured 202 response x-microcks-default: true value: jobId: "JOB-500789" status: pending createdAt: "2026-04-19T10:30:00Z" '400': description: Invalid request parameters content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK /jobs/{jobId}: get: operationId: getJobStatus summary: Allianz Trade Get Job Status description: Poll for the status of an asynchronous policy operation. tags: - Policy parameters: - name: jobId in: path required: true description: Unique identifier of the async job schema: type: string example: "JOB-500789" responses: '200': description: Job status retrieved content: application/json: schema: $ref: '#/components/schemas/JobResponse' examples: GetJobStatus200Example: summary: Default getJobStatus 200 response x-microcks-default: true value: jobId: "JOB-500789" status: processed result: jointInsuredId: "JI-500123" createdAt: "2026-04-19T10:30:00Z" completedAt: "2026-04-19T10:31:00Z" '404': description: Job not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: securitySchemes: OAuth2: type: oauth2 description: OAuth2 client credentials for Allianz Trade API access flows: clientCredentials: tokenUrl: https://api.allianz-trade.com/oauth2/token scopes: policy:read: Read policy details policy:write: Manage policy configurations schemas: Policy: title: Policy type: object description: A trade credit insurance policy from Allianz Trade properties: policyId: type: string description: Unique identifier for the policy example: "POL-500123" policyNumber: type: string description: Official Allianz Trade policy number example: "TC-2026-001" policyHolderName: type: string description: Legal name of the policy holder example: "Your Company SAS" policyType: type: string description: Type of trade credit insurance policy enum: - trade_credit - surety - ecommerce_b2b example: trade_credit policyStatus: type: string description: Current status of the policy enum: - active - suspended - expired - cancelled example: active currency: type: string description: ISO 4217 policy currency code example: EUR maxCoverageAmount: type: number format: double description: Maximum total coverage amount under the policy example: 5000000.00 coveragePercentage: type: integer description: Percentage of loss covered by the policy minimum: 0 maximum: 100 example: 90 startDate: type: string format: date description: Policy start date example: "2026-01-01" endDate: type: string format: date description: Policy end date example: "2026-12-31" country: type: string description: ISO 3166-1 alpha-2 country code for the policy example: FR createdAt: type: string format: date-time description: Timestamp when the policy was created example: "2025-12-01T10:00:00Z" PolicyList: title: PolicyList type: object description: Paginated list of trade credit insurance policies properties: data: type: array description: List of policy records items: $ref: '#/components/schemas/Policy' JointInsured: title: JointInsured type: object description: A joint insured entity registered under a policy properties: jointInsuredId: type: string description: Unique identifier for the joint insured example: "JI-500123" policyId: type: string description: Parent policy identifier example: "POL-500123" companyName: type: string description: Legal name of the joint insured company example: "Subsidiary Corp SAS" registrationNumber: type: string description: Company registration number example: "FR987654321" country: type: string description: ISO 3166-1 alpha-2 country code example: FR status: type: string description: Current status of the joint insured enum: - active - inactive example: active JointInsuredList: title: JointInsuredList type: object description: Paginated list of joint insured entities properties: data: type: array description: List of joint insured records items: $ref: '#/components/schemas/JointInsured' AddJointInsuredRequest: title: AddJointInsuredRequest type: object description: Request body for adding a joint insured to a policy required: - companyName - country properties: companyName: type: string description: Legal name of the company to add as joint insured example: "Subsidiary Corp SAS" registrationNumber: type: string description: Company registration number example: "FR987654321" country: type: string description: ISO 3166-1 alpha-2 country code example: FR JobResponse: title: JobResponse type: object description: Async job status response properties: jobId: type: string description: Unique identifier for the async job example: "JOB-500789" status: type: string description: Current status of the job enum: - pending - processed - failed example: processed result: type: object description: Result data after successful job completion example: jointInsuredId: "JI-500123" createdAt: type: string format: date-time description: When the job was created example: "2026-04-19T10:30:00Z" completedAt: type: string format: date-time description: When the job completed (null if still pending) example: "2026-04-19T10:31:00Z" ErrorResponse: title: ErrorResponse type: object description: Standard error response properties: code: type: string description: Error code example: INVALID_REQUEST message: type: string description: Human-readable error description example: "The policyId is required" requestId: type: string description: Request identifier for support reference example: "req-500999"