1+ package com .twikey .modal ;
2+
3+ import org .json .JSONArray ;
4+ import org .json .JSONObject ;
5+ import org .json .JSONTokener ;
6+ import org .junit .Test ;
7+
8+ public class InvoiceResponseTest {
9+ @ Test
10+ public void testIMport () {
11+ String feed = """
12+ {
13+ "Payments": [
14+ {
15+ "eventId": "evt_mXvrIbQj14D7Z",
16+ "eventType": "payment",
17+ "occurredAt": "2026-01-15T15:19:19.471Z",
18+ "amount": 30,
19+ "currency": "EUR",
20+ "origin": {
21+ "object": "invoice",
22+ "id": "d9e601e7-18ee-4a88-a71c-bc68ace0021e",
23+ "number": "192274614",
24+ "ref": "truearchitect"
25+ },
26+ "gateway": {
27+ "id": 847,
28+ "name": "ABN NL23XXXXXXXXXX8701",
29+ "type": "bank",
30+ "iban": "NL23ABNA0838498701"
31+ },
32+ "details": {
33+ "source": "direct_debit",
34+ "paymentId": 7868235,
35+ "transactionE2e": "7864B9BB0E6440159E430875C6E7809D",
36+ "mndtId": "Y3QQB4VSUTNQ47R"
37+ }
38+ },
39+ {
40+ "eventId": "evt_2wndunjvlJNQP",
41+ "eventType": "payment_failure",
42+ "occurredAt": "2026-01-15T15:19:21.976Z",
43+ "amount": 30,
44+ "currency": "EUR",
45+ "origin": {
46+ "object": "invoice",
47+ "id": "d9e601e7-18ee-4a88-a71c-bc68ace0021e",
48+ "number": "192274614",
49+ "ref": "truearchitect"
50+ },
51+ "gateway": {
52+ "id": 847,
53+ "name": "ABN NL23XXXXXXXXXX8701",
54+ "type": "bank",
55+ "iban": "NL23ABNA0838498701"
56+ },
57+ "details": {
58+ "source": "direct_debit",
59+ "paymentId": 7868235,
60+ "transactionE2e": "7864B9BB0E6440159E430875C6E7809D",
61+ "mndtId": "Y3QQB4VSUTNQ47R"
62+ },
63+ "error": {
64+ "code": "not_routable",
65+ "description": "Bank not reachable",
66+ "category": "other",
67+ "externalCode": "PY01",
68+ "action": "send_payment_link",
69+ "actionStep": 1
70+ }
71+ },
72+ {
73+ "eventId": "evt_vDvDIyeWbPnKr",
74+ "eventType": "payment",
75+ "occurredAt": "2026-01-15T15:20:06.134Z",
76+ "amount": 5,
77+ "currency": "EUR",
78+ "origin": {
79+ "object": "invoice",
80+ "id": "929b5c17-c2ef-4027-b2e2-73e900bcd33f",
81+ "number": "993109187",
82+ "ref": "falsegrow"
83+ },
84+ "gateway": {
85+ "id": 1579,
86+ "name": "Mollie",
87+ "type": "psp",
88+ "iban": null
89+ },
90+ "details": {
91+ "source": "payment_link",
92+ "linkId": 812589,
93+ "linkMethod": "mastercard"
94+ }
95+ },
96+ {
97+ "eventId": "evt_3wJQianYwvJmY",
98+ "eventType": "refund",
99+ "occurredAt": "2026-01-15T15:20:36.755Z",
100+ "amount": 811,
101+ "currency": "EUR",
102+ "origin": {
103+ "object": "invoice",
104+ "id": "550d75bb-7cff-4b8d-92f9-d9d56b6daa9d",
105+ "number": "634326789",
106+ "ref": "trueengineer"
107+ },
108+ "gateway": {
109+ "id": 847,
110+ "name": "ABN NL23XXXXXXXXXX8701",
111+ "type": "bank",
112+ "iban": "NL23ABNA0838498701"
113+ },
114+ "details": {
115+ "source": "credit_transfer",
116+ "customerIban": "NL23INGB7520051579",
117+ "refundE2e": "B78C1AF520260115152026162308603"
118+ }
119+ }
120+ ]
121+ }""" ;
122+ JSONObject json = new JSONObject (new JSONTokener (feed ));
123+ JSONArray payments = json .getJSONArray ("Payments" );
124+ payments .iterator ().forEachRemaining (item -> {
125+ InvoiceResponse .Event .fromJson ((JSONObject ) item );
126+ });
127+ }
128+ }
0 commit comments