@insurance-broker/api-client 1.35.0 → 1.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/schema.d.ts +513 -1
  2. package/package.json +1 -1
package/dist/schema.d.ts CHANGED
@@ -11,7 +11,19 @@ export interface paths {
11
11
  path?: never;
12
12
  cookie?: never;
13
13
  };
14
- get?: never;
14
+ /**
15
+ * List what this broker is owed, what is overdue, and what has concluded
16
+ * @description PAY-002. Five views over one collection, oldest due date first, paged by cursor: `owed`, `overdue`, `settled`, `written-off` and `cancelled`. A `customerId` or a `policyId` narrows any of them.
17
+ *
18
+ * **Nothing stores `overdue`.** A charge is overdue when its due date is before the day the page was measured against and its balance is above nil, computed as the page is read (ADR-0042 section 9, section 14). The day is returned as `asOf` on every page, so a page saying nine charges are overdue also says what overdue meant when it said so.
19
+ *
20
+ * **One walk is measured against one day.** `asOf` is read from the clock on the first page and carried inside the cursor, so a walk crossing UTC midnight cannot lose the tie group it is inside. A walk resumed the next morning therefore serves the previous day's buckets: compare `asOf` with your own clock and start a new walk without a cursor.
21
+ *
22
+ * **`balance` is not always `amount` less `paid`.** A cancelled charge is owed nothing, so money paid against one leaves the customer in credit; a written-off charge is owed what actually arrived and no more, because a write-off forgives the remainder rather than the part that was paid. The same rule the customer's statement uses.
23
+ *
24
+ * **`customerId` and `policyId` are filters and never authorisation.** The broker whose charges these are comes from the session; naming a customer here selects among this broker's own rows and can reach nobody else's.
25
+ */
26
+ get: operations["ListObligations"];
15
27
  put?: never;
16
28
  /**
17
29
  * Record what a customer owes against one of their policies
@@ -306,6 +318,34 @@ export interface paths {
306
318
  patch?: never;
307
319
  trace?: never;
308
320
  };
321
+ "/api/v1/payments": {
322
+ parameters: {
323
+ query?: never;
324
+ header?: never;
325
+ path?: never;
326
+ cookie?: never;
327
+ };
328
+ /**
329
+ * List the money this broker has recorded, most recent first
330
+ * @description PAY-005. The payments this broker has recorded, ordered by when they posted, paged by cursor. A `customerId` or an `obligationId` narrows the list.
331
+ *
332
+ * **There is no `asOf` here, unlike `GET /obligations`.** Nothing in this list's predicate reads the clock - a payment posted at an instant the row records - so a member reporting when the page was measured would read as a freshness guarantee while guaranteeing nothing.
333
+ *
334
+ * **A reversed payment stays on the list** and carries `reversed: true`. Money that arrived and was sent back is a fact a reconciliation has to see, and a reversal is its own record rather than an edit to this one (ADR-0042 section 8).
335
+ *
336
+ * **Rows carry no subject identifiers.** Who recorded a payment and who approved it is the separation-of-duties record and it is on the payment itself, so a page-sized read cannot enumerate a broker's finance staff.
337
+ *
338
+ * **`customerId` and `obligationId` are filters and never authorisation.** The broker whose payments these are comes from the session.
339
+ */
340
+ get: operations["ListPayments"];
341
+ put?: never;
342
+ post?: never;
343
+ delete?: never;
344
+ options?: never;
345
+ head?: never;
346
+ patch?: never;
347
+ trace?: never;
348
+ };
309
349
  "/api/v1/payments/{id}": {
310
350
  parameters: {
311
351
  query?: never;
@@ -472,6 +512,122 @@ export interface paths {
472
512
  patch?: never;
473
513
  trace?: never;
474
514
  };
515
+ "/api/v1/statements": {
516
+ parameters: {
517
+ query?: never;
518
+ header?: never;
519
+ path?: never;
520
+ cookie?: never;
521
+ };
522
+ /**
523
+ * List the statements this broker has produced
524
+ * @description Newest period first, paged by cursor. A `customerId` narrows the list to one customer.
525
+ *
526
+ * **`customerId` is a filter and never an authorisation.** The broker whose statements these are comes from the session; naming a customer here selects among this broker's own rows and can reach nobody else's.
527
+ *
528
+ * Rows carry what each statement covers and not its figures: computing every statement's balance to render one page would make a list cost what a year of reading costs.
529
+ */
530
+ get: operations["ListStatements"];
531
+ put?: never;
532
+ /**
533
+ * Produce a statement of account for a customer
534
+ * @description PAY-011. Records that a statement was produced for one customer, in one currency, over one period that has already finished, and answers its charges, payments, allocations and balances.
535
+ *
536
+ * **The period must have ended.** A statement's figures are computed from the ledger rather than stored, so one covering a day that is still running would answer differently every time it was read - and a statement of account that changes after it has been sent is worse than none.
537
+ *
538
+ * **One currency per statement.** A charge carries its own currency, and a balance in two of them is not a number. A customer owing in two currencies gets two statements.
539
+ *
540
+ * **Nothing about money is stored on the row.** There is no balance column: every figure is derived from the obligations and payments the statement renders, bounded by its period and by the instant it was produced.
541
+ */
542
+ post: operations["ProduceStatement"];
543
+ delete?: never;
544
+ options?: never;
545
+ head?: never;
546
+ patch?: never;
547
+ trace?: never;
548
+ };
549
+ "/api/v1/statements/{id}": {
550
+ parameters: {
551
+ query?: never;
552
+ header?: never;
553
+ path?: never;
554
+ cookie?: never;
555
+ };
556
+ /**
557
+ * Read one statement, with its lines and figures
558
+ * @description PAY-011's whole sentence: the charges raised in the period, the payments recorded against them, which charge each payment went to, and the balance at either end of it.
559
+ *
560
+ * **`closingBalance` is `openingBalance` plus `charged` less `paid`**, and `charged` is the sum of the `amountOwed` column, so the statement reconciles against its own lines.
561
+ *
562
+ * **Each charge carries `amountOwed` beside `amount`, and the two differ when the charge has concluded.** A charge still outstanding, or one settled by payments on this statement, is owed in full. A charge the broker **cancelled** is owed nothing - it should never have existed, so money paid against it leaves the customer in credit. A charge the broker **wrote off** is owed what was actually paid against it, because a write-off forgives the remainder and never the part that arrived.
563
+ *
564
+ * **Every figure is measured as at `producedAtUtc`.** A charge cancelled or written off after this statement was produced still shows what it was owed at the time, so `status` and `amountOwed` can disagree - and that pair is the record rather than a contradiction. A payment reversed afterwards still stands here for the same reason.
565
+ */
566
+ get: operations["GetStatement"];
567
+ put?: never;
568
+ post?: never;
569
+ delete?: never;
570
+ options?: never;
571
+ head?: never;
572
+ patch?: never;
573
+ trace?: never;
574
+ };
575
+ "/api/v1/customer/statements": {
576
+ parameters: {
577
+ query?: never;
578
+ header?: never;
579
+ path?: never;
580
+ cookie?: never;
581
+ };
582
+ /**
583
+ * List the statements of account your broker has produced for you
584
+ * @description PAY-011. Every statement of yours, newest period first, paged by cursor.
585
+ *
586
+ * **You are not named in the request.** There is no customer field and no broker field: the list is whoever is signed in, resolved from the session. Another person's statements are not in it - not filtered out of it, but absent, because a statement that is not yours is not visible to this route at all.
587
+ *
588
+ * Each row says what the statement covers and when it was produced. Its charges, payments and balances are on its own route.
589
+ *
590
+ * **A statement per currency.** A charge carries its own currency and a balance in two of them is not a number, so if you are billed in more than one you have a statement in each.
591
+ */
592
+ get: operations["ListOwnStatements"];
593
+ put?: never;
594
+ post?: never;
595
+ delete?: never;
596
+ options?: never;
597
+ head?: never;
598
+ patch?: never;
599
+ trace?: never;
600
+ };
601
+ "/api/v1/customer/statements/{id}": {
602
+ parameters: {
603
+ query?: never;
604
+ header?: never;
605
+ path?: never;
606
+ cookie?: never;
607
+ };
608
+ /**
609
+ * Read one of your own statements of account
610
+ * @description PAY-011. What was charged in the period, what you paid, which charge each payment went to, the policies the charges relate to, and what was owed at either end of it.
611
+ *
612
+ * **The balance is worked out from your broker's ledger rather than stored**, and it is measured as at the moment the statement was produced: a charge raised or a payment recorded afterwards is on a later statement, never added to this one. So this answer is the same today as the day it was sent to you.
613
+ *
614
+ * **`closingBalance` is `openingBalance` plus `charged` less `paid`**, and `charged` is the sum of the `amountOwed` column, so you can add the charges up and arrive at the total.
615
+ *
616
+ * **Each charge shows `amountOwed` as well as `amount`.** A charge still owed, or one your payments have settled, is owed in full. A charge your broker **cancelled** is owed nothing, so anything you paid against it counts in your favour. A charge your broker **wrote off** is owed only what you had already paid - the rest was forgiven, and neither of you owes it.
617
+ *
618
+ * A payment that was reversed is listed and does not reduce what is owed, because it happened.
619
+ *
620
+ * A statement that is not yours and one that does not exist are the same answer, because a statement belonging to somebody else is not visible here at all.
621
+ */
622
+ get: operations["GetOwnStatement"];
623
+ put?: never;
624
+ post?: never;
625
+ delete?: never;
626
+ options?: never;
627
+ head?: never;
628
+ patch?: never;
629
+ trace?: never;
630
+ };
475
631
  "/api/v1/insurers": {
476
632
  parameters: {
477
633
  query?: never;
@@ -4751,6 +4907,12 @@ export interface components {
4751
4907
  /** Format: date */
4752
4908
  incidentOn: string;
4753
4909
  };
4910
+ ObligationPage: {
4911
+ items: components["schemas"]["ObligationSummaryResponse"][];
4912
+ nextCursor: null | string;
4913
+ /** Format: date */
4914
+ asOf: string;
4915
+ };
4754
4916
  ObligationResponse: {
4755
4917
  /** Format: uuid */
4756
4918
  id: string;
@@ -4773,6 +4935,27 @@ export interface components {
4773
4935
  retentionAnchorAtUtc: null | string;
4774
4936
  writeOffReason: null | string;
4775
4937
  };
4938
+ ObligationSummaryResponse: {
4939
+ /** Format: uuid */
4940
+ id: string;
4941
+ /** Format: uuid */
4942
+ customerId: string;
4943
+ /** Format: uuid */
4944
+ policyId: string;
4945
+ /** Format: uuid */
4946
+ productId: string;
4947
+ /** Format: double */
4948
+ amount: number | string;
4949
+ /** Format: double */
4950
+ paid: number | string;
4951
+ /** Format: double */
4952
+ balance: number | string;
4953
+ currency: string;
4954
+ /** Format: date */
4955
+ dueOn: string;
4956
+ description: string;
4957
+ status: string;
4958
+ };
4776
4959
  OfferedFormResponse: {
4777
4960
  /** Format: uuid */
4778
4961
  id: string;
@@ -4909,6 +5092,10 @@ export interface components {
4909
5092
  PaymentEvidenceUpload: {
4910
5093
  file: components["schemas"]["IFormFile"];
4911
5094
  };
5095
+ PaymentPage: {
5096
+ items: components["schemas"]["PaymentSummaryResponse"][];
5097
+ nextCursor: null | string;
5098
+ };
4912
5099
  PaymentResponse: {
4913
5100
  /** Format: uuid */
4914
5101
  id: string;
@@ -4942,6 +5129,25 @@ export interface components {
4942
5129
  reversedAtUtc: string;
4943
5130
  reversedBySubjectId: string;
4944
5131
  };
5132
+ PaymentSummaryResponse: {
5133
+ /** Format: uuid */
5134
+ id: string;
5135
+ /** Format: uuid */
5136
+ obligationId: string;
5137
+ /** Format: uuid */
5138
+ customerId: string;
5139
+ /** Format: double */
5140
+ amount: number | string;
5141
+ currency: string;
5142
+ source: string;
5143
+ externalReference: string;
5144
+ status: string;
5145
+ /** Format: date-time */
5146
+ postedAtUtc: string;
5147
+ /** Format: date-time */
5148
+ approvedAtUtc: null | string;
5149
+ reversed: boolean;
5150
+ };
4945
5151
  PlaceLegalHoldRequest: {
4946
5152
  moduleName: null | string;
4947
5153
  entityType: null | string;
@@ -5095,6 +5301,15 @@ export interface components {
5095
5301
  detail?: null | string;
5096
5302
  instance?: null | string;
5097
5303
  };
5304
+ ProduceStatementRequest: {
5305
+ /** Format: uuid */
5306
+ customerId: string;
5307
+ currency: string;
5308
+ /** Format: date */
5309
+ periodStart: string;
5310
+ /** Format: date */
5311
+ periodEnd: string;
5312
+ };
5098
5313
  ProductCategoryResponse: {
5099
5314
  /** Format: uuid */
5100
5315
  id: string;
@@ -5597,6 +5812,78 @@ export interface components {
5597
5812
  quoteRequestId: null | string;
5598
5813
  options: null | components["schemas"]["PresentedOptionRequest"][];
5599
5814
  };
5815
+ StatementChargeResponse: {
5816
+ /** Format: uuid */
5817
+ obligationId: string;
5818
+ /** Format: uuid */
5819
+ policyId: string;
5820
+ /** Format: uuid */
5821
+ productId: string;
5822
+ description: string;
5823
+ /** Format: double */
5824
+ amount: number | string;
5825
+ /** Format: double */
5826
+ amountOwed: number | string;
5827
+ /** Format: date */
5828
+ dueOn: string;
5829
+ /** Format: date-time */
5830
+ raisedAtUtc: string;
5831
+ status: string;
5832
+ };
5833
+ StatementPage: {
5834
+ items: components["schemas"]["StatementSummaryResponse"][];
5835
+ nextCursor: null | string;
5836
+ };
5837
+ StatementPaymentResponse: {
5838
+ /** Format: uuid */
5839
+ paymentId: string;
5840
+ /** Format: uuid */
5841
+ obligationId: string;
5842
+ /** Format: double */
5843
+ amount: number | string;
5844
+ source: string;
5845
+ externalReference: string;
5846
+ /** Format: date-time */
5847
+ postedAtUtc: string;
5848
+ isReversed: boolean;
5849
+ };
5850
+ StatementResponse: {
5851
+ /** Format: uuid */
5852
+ id: string;
5853
+ /** Format: uuid */
5854
+ customerId: string;
5855
+ currency: string;
5856
+ /** Format: date */
5857
+ periodStart: string;
5858
+ /** Format: date */
5859
+ periodEnd: string;
5860
+ /** Format: date-time */
5861
+ producedAtUtc: string;
5862
+ /** Format: double */
5863
+ openingBalance: number | string;
5864
+ /** Format: double */
5865
+ charged: number | string;
5866
+ /** Format: double */
5867
+ paid: number | string;
5868
+ /** Format: double */
5869
+ closingBalance: number | string;
5870
+ policyIds: string[];
5871
+ charges: components["schemas"]["StatementChargeResponse"][];
5872
+ payments: components["schemas"]["StatementPaymentResponse"][];
5873
+ };
5874
+ StatementSummaryResponse: {
5875
+ /** Format: uuid */
5876
+ id: string;
5877
+ /** Format: uuid */
5878
+ customerId: string;
5879
+ currency: string;
5880
+ /** Format: date */
5881
+ periodStart: string;
5882
+ /** Format: date */
5883
+ periodEnd: string;
5884
+ /** Format: date-time */
5885
+ producedAtUtc: string;
5886
+ };
5600
5887
  SubmissionAttachmentDownloadLinkResponse: {
5601
5888
  url: string;
5602
5889
  /** Format: date-time */
@@ -5710,6 +5997,41 @@ export interface components {
5710
5997
  }
5711
5998
  export type $defs = Record<string, never>;
5712
5999
  export interface operations {
6000
+ ListObligations: {
6001
+ parameters: {
6002
+ query?: {
6003
+ view?: string;
6004
+ customerId?: string;
6005
+ policyId?: string;
6006
+ cursor?: string;
6007
+ limit?: number | string;
6008
+ };
6009
+ header?: never;
6010
+ path?: never;
6011
+ cookie?: never;
6012
+ };
6013
+ requestBody?: never;
6014
+ responses: {
6015
+ /** @description OK */
6016
+ 200: {
6017
+ headers: {
6018
+ [name: string]: unknown;
6019
+ };
6020
+ content: {
6021
+ "application/json": components["schemas"]["ObligationPage"];
6022
+ };
6023
+ };
6024
+ /** @description Bad Request */
6025
+ 400: {
6026
+ headers: {
6027
+ [name: string]: unknown;
6028
+ };
6029
+ content: {
6030
+ "application/problem+json": components["schemas"]["HttpValidationProblemDetails"];
6031
+ };
6032
+ };
6033
+ };
6034
+ };
5713
6035
  RaiseObligation: {
5714
6036
  parameters: {
5715
6037
  query?: never;
@@ -6210,6 +6532,40 @@ export interface operations {
6210
6532
  };
6211
6533
  };
6212
6534
  };
6535
+ ListPayments: {
6536
+ parameters: {
6537
+ query?: {
6538
+ customerId?: string;
6539
+ obligationId?: string;
6540
+ cursor?: string;
6541
+ limit?: number | string;
6542
+ };
6543
+ header?: never;
6544
+ path?: never;
6545
+ cookie?: never;
6546
+ };
6547
+ requestBody?: never;
6548
+ responses: {
6549
+ /** @description OK */
6550
+ 200: {
6551
+ headers: {
6552
+ [name: string]: unknown;
6553
+ };
6554
+ content: {
6555
+ "application/json": components["schemas"]["PaymentPage"];
6556
+ };
6557
+ };
6558
+ /** @description Bad Request */
6559
+ 400: {
6560
+ headers: {
6561
+ [name: string]: unknown;
6562
+ };
6563
+ content: {
6564
+ "application/problem+json": components["schemas"]["HttpValidationProblemDetails"];
6565
+ };
6566
+ };
6567
+ };
6568
+ };
6213
6569
  GetPayment: {
6214
6570
  parameters: {
6215
6571
  query?: never;
@@ -6505,6 +6861,162 @@ export interface operations {
6505
6861
  };
6506
6862
  };
6507
6863
  };
6864
+ ListStatements: {
6865
+ parameters: {
6866
+ query?: {
6867
+ customerId?: string;
6868
+ cursor?: string;
6869
+ limit?: number | string;
6870
+ };
6871
+ header?: never;
6872
+ path?: never;
6873
+ cookie?: never;
6874
+ };
6875
+ requestBody?: never;
6876
+ responses: {
6877
+ /** @description OK */
6878
+ 200: {
6879
+ headers: {
6880
+ [name: string]: unknown;
6881
+ };
6882
+ content: {
6883
+ "application/json": components["schemas"]["StatementPage"];
6884
+ };
6885
+ };
6886
+ /** @description Bad Request */
6887
+ 400: {
6888
+ headers: {
6889
+ [name: string]: unknown;
6890
+ };
6891
+ content: {
6892
+ "application/problem+json": components["schemas"]["HttpValidationProblemDetails"];
6893
+ };
6894
+ };
6895
+ };
6896
+ };
6897
+ ProduceStatement: {
6898
+ parameters: {
6899
+ query?: never;
6900
+ header?: never;
6901
+ path?: never;
6902
+ cookie?: never;
6903
+ };
6904
+ requestBody: {
6905
+ content: {
6906
+ "application/json": components["schemas"]["ProduceStatementRequest"];
6907
+ };
6908
+ };
6909
+ responses: {
6910
+ /** @description Created */
6911
+ 201: {
6912
+ headers: {
6913
+ [name: string]: unknown;
6914
+ };
6915
+ content: {
6916
+ "application/json": components["schemas"]["StatementResponse"];
6917
+ };
6918
+ };
6919
+ /** @description Bad Request */
6920
+ 400: {
6921
+ headers: {
6922
+ [name: string]: unknown;
6923
+ };
6924
+ content: {
6925
+ "application/problem+json": components["schemas"]["HttpValidationProblemDetails"];
6926
+ };
6927
+ };
6928
+ };
6929
+ };
6930
+ GetStatement: {
6931
+ parameters: {
6932
+ query?: never;
6933
+ header?: never;
6934
+ path: {
6935
+ id: string;
6936
+ };
6937
+ cookie?: never;
6938
+ };
6939
+ requestBody?: never;
6940
+ responses: {
6941
+ /** @description OK */
6942
+ 200: {
6943
+ headers: {
6944
+ [name: string]: unknown;
6945
+ };
6946
+ content: {
6947
+ "application/json": components["schemas"]["StatementResponse"];
6948
+ };
6949
+ };
6950
+ /** @description Not Found */
6951
+ 404: {
6952
+ headers: {
6953
+ [name: string]: unknown;
6954
+ };
6955
+ content?: never;
6956
+ };
6957
+ };
6958
+ };
6959
+ ListOwnStatements: {
6960
+ parameters: {
6961
+ query?: {
6962
+ cursor?: string;
6963
+ limit?: number | string;
6964
+ };
6965
+ header?: never;
6966
+ path?: never;
6967
+ cookie?: never;
6968
+ };
6969
+ requestBody?: never;
6970
+ responses: {
6971
+ /** @description OK */
6972
+ 200: {
6973
+ headers: {
6974
+ [name: string]: unknown;
6975
+ };
6976
+ content: {
6977
+ "application/json": components["schemas"]["StatementPage"];
6978
+ };
6979
+ };
6980
+ /** @description Bad Request */
6981
+ 400: {
6982
+ headers: {
6983
+ [name: string]: unknown;
6984
+ };
6985
+ content: {
6986
+ "application/problem+json": components["schemas"]["HttpValidationProblemDetails"];
6987
+ };
6988
+ };
6989
+ };
6990
+ };
6991
+ GetOwnStatement: {
6992
+ parameters: {
6993
+ query?: never;
6994
+ header?: never;
6995
+ path: {
6996
+ id: string;
6997
+ };
6998
+ cookie?: never;
6999
+ };
7000
+ requestBody?: never;
7001
+ responses: {
7002
+ /** @description OK */
7003
+ 200: {
7004
+ headers: {
7005
+ [name: string]: unknown;
7006
+ };
7007
+ content: {
7008
+ "application/json": components["schemas"]["StatementResponse"];
7009
+ };
7010
+ };
7011
+ /** @description Not Found */
7012
+ 404: {
7013
+ headers: {
7014
+ [name: string]: unknown;
7015
+ };
7016
+ content?: never;
7017
+ };
7018
+ };
7019
+ };
6508
7020
  ListInsurers: {
6509
7021
  parameters: {
6510
7022
  query?: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@insurance-broker/api-client",
3
- "version": "1.35.0",
3
+ "version": "1.37.0",
4
4
  "description": "Generated TypeScript client for the Insurance Broker Platform API. Do not edit by hand: regenerate with scripts/update-api-contract.",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,