@checkdigit/eslint-plugin 7.18.0-PR.143-b064 → 7.18.0-PR.143-b6d4

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 (40) hide show
  1. package/dist-mjs/athena/athena.mjs +82 -36
  2. package/dist-mjs/athena/visitor.mjs +27 -1
  3. package/dist-mjs/openapi/service-schema-generator.mjs +26 -64
  4. package/dist-types/athena/visitor.d.ts +4 -0
  5. package/package.json +1 -1
  6. package/src/athena/athena.ts +93 -43
  7. package/src/athena/visitor.ts +28 -0
  8. package/src/openapi/service-schema-generator.ts +26 -74
  9. package/src/services/interchange/v1/swagger.schema.deref.json +16 -15
  10. package/src/services/ledger/v1/swagger.schema.deref.json +81 -81
  11. package/src/services/ledger/v2/swagger.schema.deref.json +4119 -0
  12. package/src/services/link/v1/swagger.schema.deref.json +13 -12
  13. package/src/services/link/{v1/swagger.schema.json → v2/swagger.schema.deref.json} +98 -28
  14. package/src/services/message/v1/swagger.schema.deref.json +731 -731
  15. package/src/services/message/v2/swagger.schema.deref.json +1017 -1017
  16. package/src/services/paymentCard/v1/swagger.schema.deref.json +248 -238
  17. package/src/services/paymentCard/v2/swagger.schema.deref.json +257 -274
  18. package/src/services/paymentCard/v3/swagger.schema.deref.json +2843 -0
  19. package/src/services/person/v1/swagger.schema.deref.json +111 -96
  20. package/src/services/person/v2/swagger.schema.deref.json +4931 -0
  21. package/src/services/teampayApproval/v1/swagger.schema.deref.json +2 -165
  22. package/src/services/teampayCardManagement/v1/swagger.schema.deref.json +220 -1768
  23. package/src/services/teampayClientManagement/v1/swagger.schema.deref.json +217 -217
  24. package/src/services/interchange/v1/swagger.schema.json +0 -423
  25. package/src/services/interchange/v1/swagger.yml +0 -414
  26. package/src/services/ledger/v1/swagger.schema.json +0 -1048
  27. package/src/services/ledger/v1/swagger.yml +0 -1094
  28. package/src/services/link/v1/swagger.yml +0 -343
  29. package/src/services/message/v1/swagger.schema.json +0 -2944
  30. package/src/services/message/v1/swagger.yml +0 -2798
  31. package/src/services/message/v2/swagger.schema.json +0 -3040
  32. package/src/services/message/v2/swagger.yml +0 -3009
  33. package/src/services/paymentCard/v1/swagger.schema.json +0 -1687
  34. package/src/services/paymentCard/v1/swagger.yml +0 -1161
  35. package/src/services/paymentCard/v2/swagger.schema.json +0 -1649
  36. package/src/services/paymentCard/v2/swagger.yml +0 -1149
  37. package/src/services/person/v1/swagger.schema.json +0 -979
  38. package/src/services/person/v1/swagger.yml +0 -1157
  39. package/src/services/teampayClientManagement/v1/swagger.schema.json +0 -1598
  40. package/src/services/teampayClientManagement/v1/swagger.yml +0 -1376
@@ -0,0 +1,2843 @@
1
+ {
2
+ "apis": {
3
+ "/payment-card/v3/ping": {},
4
+ "/payment-card/v3/tenant/:tenantId/public-key": {},
5
+ "/payment-card/v3/tenant/:tenantId/data-encryption-key/:dataEncryptionKeyId": {
6
+ "put": {
7
+ "request": {
8
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
9
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantDataEncryptionKeyPutRequestContext",
10
+ "type": "object",
11
+ "properties": {
12
+ "params": {
13
+ "type": "object",
14
+ "additionalProperties": false,
15
+ "properties": {
16
+ "tenantId": {
17
+ "type": "string"
18
+ },
19
+ "dataEncryptionKeyId": {
20
+ "type": "string",
21
+ "format": "uuid"
22
+ }
23
+ },
24
+ "required": ["tenantId", "dataEncryptionKeyId"]
25
+ },
26
+ "headers": {
27
+ "type": "object",
28
+ "additionalProperties": true,
29
+ "properties": {
30
+ "created-on": {
31
+ "type": "string",
32
+ "format": "date-time"
33
+ }
34
+ },
35
+ "required": ["created-on"]
36
+ },
37
+ "body": {
38
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
39
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKeyRequest",
40
+ "type": "object",
41
+ "additionalProperties": false,
42
+ "required": ["publicKeys"],
43
+ "properties": {
44
+ "publicKeys": {
45
+ "type": "array",
46
+ "minItems": 1,
47
+ "description": "List of public keys in PEM format.\n\nAssociated private keys can be used to decrypt card data encrypted by Payment Card Service.\n",
48
+ "items": {
49
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
50
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PublicKey",
51
+ "description": "An RSA generated public key in PEM format.",
52
+ "type": "string",
53
+ "example": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwm2sxmRdTF7ZIBA6+ngO\n8jOTCHmID0PpQB1q85+hrcLSfB1rWY9bzNNLabBo/ajDnA4Pcadq/x6gpg70qZcR\n9Wxm6TttKzBPZsxasGXgSTDqEi2KcYZgq1mL4qyxUvyIms7/llGy+W9b5huZaVcO\nxdT1tw/zctbOhb6S2t5vH+zkta/2ncUXjG7i8XdLsJ1qe4K1kYbA4KVkOMmAtw7O\n4STk0TZDD0YARdmrciorJjbIVt0Xj1CrYQ5QbDGrlfeXgrcZwX5f9wT2MnKlY5oZ\n5Wtb57oGtLkVf8g6vN/2jGtAmOmHK2hHwNd/+zUet5G/S5uwEli4RgMPP4pUoKgd\nGQIDAQAB\n-----END PUBLIC KEY-----\n"
54
+ }
55
+ }
56
+ }
57
+ }
58
+ },
59
+ "required": ["params", "headers", "body"],
60
+ "additionalProperties": false
61
+ },
62
+ "responses": {
63
+ "200": {
64
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
65
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantDataEncryptionKeyPutResponseOK",
66
+ "type": "object",
67
+ "properties": {
68
+ "headers": {
69
+ "type": "object",
70
+ "properties": {
71
+ "created-on": {
72
+ "type": "string",
73
+ "format": "date-time"
74
+ },
75
+ "updated-on": {
76
+ "type": "string",
77
+ "format": "date-time"
78
+ }
79
+ },
80
+ "required": ["created-on", "updated-on"]
81
+ },
82
+ "body": {
83
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
84
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/EncryptedDataEncryptionKeys",
85
+ "type": "object",
86
+ "description": "An object that contains a list of EncryptedDataEncryptionKey objects.\n",
87
+ "required": ["encryptedDataEncryptionKeys", "createdOn"],
88
+ "properties": {
89
+ "createdOn": {
90
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
91
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CreatedOn",
92
+ "type": "string",
93
+ "format": "date-time",
94
+ "description": "The UTC datetime the resource was created."
95
+ },
96
+ "encryptedDataEncryptionKeys": {
97
+ "type": "array",
98
+ "items": {
99
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
100
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/EncryptedDataEncryptionKey",
101
+ "type": "object",
102
+ "additionalProperties": false,
103
+ "description": "An object that includes an encrypted data encryption key and a hashed version of the public key - using\n@checkdigit/hash - used to encrypt it.\n",
104
+ "required": ["publicKeyHash", "encryptedDataEncryptionKey"],
105
+ "properties": {
106
+ "publicKeyHash": {
107
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
108
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Hash",
109
+ "type": "string",
110
+ "format": "uuid",
111
+ "example": "15a85f64-5717-4562-b3fc-2c963f66afa6",
112
+ "description": "UUID derived using @checkdigit/hash."
113
+ },
114
+ "encryptedDataEncryptionKey": {
115
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
116
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKey",
117
+ "type": "string",
118
+ "description": "AES generated encryption key used to encrypt sensitive data."
119
+ }
120
+ }
121
+ }
122
+ }
123
+ }
124
+ }
125
+ },
126
+ "required": ["headers", "body"],
127
+ "additionalProperties": false
128
+ },
129
+ "409": {
130
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
131
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantDataEncryptionKeyPutResponseConflict",
132
+ "type": "object",
133
+ "properties": {
134
+ "headers": {
135
+ "type": "object",
136
+ "additionalProperties": true
137
+ }
138
+ },
139
+ "required": [],
140
+ "additionalProperties": false
141
+ },
142
+ "default": {
143
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
144
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantDataEncryptionKeyPutResponseDefault",
145
+ "type": "object",
146
+ "properties": {
147
+ "headers": {
148
+ "type": "object",
149
+ "additionalProperties": true
150
+ },
151
+ "body": {
152
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
153
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Error",
154
+ "type": "object",
155
+ "additionalProperties": false,
156
+ "description": "Server error message",
157
+ "properties": {
158
+ "message": {
159
+ "type": "string"
160
+ },
161
+ "code": {
162
+ "type": "string"
163
+ }
164
+ }
165
+ }
166
+ },
167
+ "required": ["body"],
168
+ "additionalProperties": false
169
+ }
170
+ }
171
+ }
172
+ },
173
+ "/payment-card/v3/tenant/:tenantId/cards": {},
174
+ "/payment-card/v3/tenant/:tenantId/card/:cardId": {},
175
+ "/payment-card/v3/tenant/:tenantId/card/:cardId/issued": {
176
+ "put": {
177
+ "request": {
178
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
179
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardIssuedPutRequestContext",
180
+ "type": "object",
181
+ "properties": {
182
+ "params": {
183
+ "type": "object",
184
+ "additionalProperties": false,
185
+ "properties": {
186
+ "tenantId": {
187
+ "type": "string"
188
+ },
189
+ "cardId": {
190
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
191
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardId",
192
+ "type": "string",
193
+ "description": "Card identifier",
194
+ "format": "uuid"
195
+ }
196
+ },
197
+ "required": ["tenantId", "cardId"]
198
+ },
199
+ "headers": {
200
+ "type": "object",
201
+ "additionalProperties": true,
202
+ "properties": {
203
+ "created-on": {
204
+ "type": "string",
205
+ "format": "date-time"
206
+ }
207
+ },
208
+ "required": ["created-on"]
209
+ },
210
+ "body": {
211
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
212
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/NewIssuedCardRequest",
213
+ "type": "object",
214
+ "required": [
215
+ "dataEncryptionKeyId",
216
+ "cardNumberLength",
217
+ "bin",
218
+ "expirationDate",
219
+ "serviceCode",
220
+ "sequenceNumber",
221
+ "state",
222
+ "active",
223
+ "block",
224
+ "lock"
225
+ ],
226
+ "additionalProperties": false,
227
+ "properties": {
228
+ "dataEncryptionKeyId": {
229
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
230
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKeyId",
231
+ "type": "string",
232
+ "description": "Identifier for the encryption keys used to encrypt the Card object.\n",
233
+ "format": "uuid"
234
+ },
235
+ "cardNumberLength": {
236
+ "type": "integer",
237
+ "description": "Desired number of digits in the card number.",
238
+ "minimum": 15,
239
+ "maximum": 19
240
+ },
241
+ "bin": {
242
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
243
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/BankIdentificationNumber",
244
+ "type": "string",
245
+ "pattern": "^\\d{6}(\\d{2})?$",
246
+ "description": "The Bank Identification Number (BIN) is either the first 6 or 8 digits of a card number.\nIt identifies the issuing financial institution in a transaction, helping to route payments correctly.\n"
247
+ },
248
+ "expirationDate": {
249
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
250
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ExpirationDate",
251
+ "type": "string",
252
+ "pattern": "([0-9][0-9])(0[1-9]|1[0-2])",
253
+ "format": "YYMM",
254
+ "description": "Expiration date for the card and will be assumed to be the last millisecond of the month",
255
+ "minLength": 4,
256
+ "maxLength": 4
257
+ },
258
+ "serviceCode": {
259
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
260
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ServiceCode",
261
+ "type": "string",
262
+ "pattern": "^\\d+$",
263
+ "description": "Used to set general guidelines for how the card can be used, e.g. domestic only or international, online\nauthorizations only, etc.\n",
264
+ "minLength": 3,
265
+ "maxLength": 3
266
+ },
267
+ "sequenceNumber": {
268
+ "type": "integer",
269
+ "description": "Used to differentiate issuing the same card and expiration date on multiple plastics.",
270
+ "minimum": 0,
271
+ "maximum": 10
272
+ },
273
+ "state": {
274
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
275
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/StateStatus",
276
+ "description": "The state status for the card.",
277
+ "type": "string",
278
+ "enum": ["CURRENT", "REISSUED", "RETIRED", "FORCED"]
279
+ },
280
+ "active": {
281
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
282
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ActiveStatus",
283
+ "description": "The active/inactive status for the card",
284
+ "type": "string",
285
+ "enum": ["INACTIVE", "ACTIVE"]
286
+ },
287
+ "block": {
288
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
289
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/BlockStatus",
290
+ "type": "string",
291
+ "description": "Whether the card is open or blocked for various reasons",
292
+ "enum": ["OPEN", "BLOCKED LOST OR STOLEN", "BLOCKED NO FRAUD", "BLOCKED WITH FRAUD"]
293
+ },
294
+ "lock": {
295
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
296
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/LockStatus",
297
+ "type": "string",
298
+ "description": "A cardholder initiated status. A locked card will fail authorization. Locked cards can be unlocked.\n\nA cardholder may choose to lock a card while temporarily misplaced.\n",
299
+ "enum": ["LOCKED", "UNLOCKED"]
300
+ }
301
+ }
302
+ }
303
+ },
304
+ "required": ["params", "headers", "body"],
305
+ "additionalProperties": false
306
+ },
307
+ "responses": {
308
+ "200": {
309
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
310
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardIssuedPutResponseOK",
311
+ "type": "object",
312
+ "properties": {
313
+ "headers": {
314
+ "type": "object",
315
+ "properties": {
316
+ "created-on": {
317
+ "type": "string",
318
+ "format": "date-time"
319
+ },
320
+ "updated-on": {
321
+ "type": "string",
322
+ "format": "date-time"
323
+ },
324
+ "etag": {
325
+ "type": "string"
326
+ }
327
+ },
328
+ "required": ["created-on", "updated-on", "etag"]
329
+ },
330
+ "body": {
331
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
332
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Card",
333
+ "type": "object",
334
+ "additionalProperties": false,
335
+ "required": [
336
+ "cardId",
337
+ "bin",
338
+ "last4",
339
+ "expirationDate",
340
+ "encryptedCardNumber",
341
+ "serviceCode",
342
+ "pinOffset",
343
+ "sequenceNumber",
344
+ "state",
345
+ "active",
346
+ "block",
347
+ "lock",
348
+ "capture",
349
+ "dataEncryptionKeyId",
350
+ "storageKeyId",
351
+ "updatedOn",
352
+ "createdOn"
353
+ ],
354
+ "properties": {
355
+ "cardId": {
356
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
357
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardId",
358
+ "type": "string",
359
+ "description": "Card identifier",
360
+ "format": "uuid"
361
+ },
362
+ "bin": {
363
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
364
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/BankIdentificationNumber",
365
+ "type": "string",
366
+ "pattern": "^\\d{6}(\\d{2})?$",
367
+ "description": "The Bank Identification Number (BIN) is either the first 6 or 8 digits of a card number.\nIt identifies the issuing financial institution in a transaction, helping to route payments correctly.\n"
368
+ },
369
+ "last4": {
370
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
371
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Last4",
372
+ "type": "string",
373
+ "pattern": "^\\d+$",
374
+ "description": "The last four digits of the card number.",
375
+ "minLength": 4,
376
+ "maxLength": 4
377
+ },
378
+ "expirationDate": {
379
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
380
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ExpirationDate",
381
+ "type": "string",
382
+ "pattern": "([0-9][0-9])(0[1-9]|1[0-2])",
383
+ "format": "YYMM",
384
+ "description": "Expiration date for the card and will be assumed to be the last millisecond of the month",
385
+ "minLength": 4,
386
+ "maxLength": 4
387
+ },
388
+ "encryptedCardNumber": {
389
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
390
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardNumber",
391
+ "type": "string",
392
+ "pattern": "^\\d+$",
393
+ "description": "The Primary Account Number (PAN) of the card.",
394
+ "minLength": 15,
395
+ "maxLength": 19
396
+ },
397
+ "serviceCode": {
398
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
399
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ServiceCode",
400
+ "type": "string",
401
+ "pattern": "^\\d+$",
402
+ "description": "Used to set general guidelines for how the card can be used, e.g. domestic only or international, online\nauthorizations only, etc.\n",
403
+ "minLength": 3,
404
+ "maxLength": 3
405
+ },
406
+ "pinOffset": {
407
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
408
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PinOffset",
409
+ "type": "string",
410
+ "description": "Offset used to calculate the user-defined PIN.",
411
+ "pattern": "^\\d+$",
412
+ "minLength": 4,
413
+ "maxLength": 12
414
+ },
415
+ "sequenceNumber": {
416
+ "type": "integer",
417
+ "description": "Used to differentiate cards with same card number and expiration date."
418
+ },
419
+ "state": {
420
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
421
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/StateStatus",
422
+ "description": "The state status for the card.",
423
+ "type": "string",
424
+ "enum": ["CURRENT", "REISSUED", "RETIRED", "FORCED"]
425
+ },
426
+ "active": {
427
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
428
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ActiveStatus",
429
+ "description": "The active/inactive status for the card",
430
+ "type": "string",
431
+ "enum": ["INACTIVE", "ACTIVE"]
432
+ },
433
+ "block": {
434
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
435
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/BlockStatus",
436
+ "type": "string",
437
+ "description": "Whether the card is open or blocked for various reasons",
438
+ "enum": ["OPEN", "BLOCKED LOST OR STOLEN", "BLOCKED NO FRAUD", "BLOCKED WITH FRAUD"]
439
+ },
440
+ "lock": {
441
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
442
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/LockStatus",
443
+ "type": "string",
444
+ "description": "A cardholder initiated status. A locked card will fail authorization. Locked cards can be unlocked.\n\nA cardholder may choose to lock a card while temporarily misplaced.\n",
445
+ "enum": ["LOCKED", "UNLOCKED"]
446
+ },
447
+ "capture": {
448
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
449
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CaptureStatus",
450
+ "type": "string",
451
+ "description": "An issuer initiated status. If the value is CAPTURE, a merchant has the option to confiscate the card\nfrom the cardholder at the point of sale.\n",
452
+ "enum": ["CAPTURE", "NO CAPTURE"]
453
+ },
454
+ "dataEncryptionKeyId": {
455
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
456
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKeyId",
457
+ "type": "string",
458
+ "description": "Identifier for the encryption keys used to encrypt the Card object.\n",
459
+ "format": "uuid"
460
+ },
461
+ "storageKeyId": {
462
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
463
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/StorageKeyId",
464
+ "type": "string",
465
+ "description": "DEK's non-derived identifier to be used by Check Digit services only.\n"
466
+ },
467
+ "encryptedDataEncryptionKey": {
468
+ "description": "Encrypted DEK matching the publicKeyHash sent in the request. Used to decrypt values in the Card object.\n",
469
+ "type": "string"
470
+ },
471
+ "updatedOn": {
472
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
473
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/UpdatedOn",
474
+ "type": "string",
475
+ "format": "date-time",
476
+ "description": "The UTC datetime the resource was last updated."
477
+ },
478
+ "createdOn": {
479
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
480
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CreatedOn",
481
+ "type": "string",
482
+ "format": "date-time",
483
+ "description": "The UTC datetime the resource was created."
484
+ }
485
+ }
486
+ }
487
+ },
488
+ "required": ["headers", "body"],
489
+ "additionalProperties": false
490
+ },
491
+ "409": {
492
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
493
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardIssuedPutResponseConflict",
494
+ "type": "object",
495
+ "properties": {
496
+ "headers": {
497
+ "type": "object",
498
+ "additionalProperties": true
499
+ }
500
+ },
501
+ "required": [],
502
+ "additionalProperties": false
503
+ },
504
+ "default": {
505
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
506
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardIssuedPutResponseDefault",
507
+ "type": "object",
508
+ "properties": {
509
+ "headers": {
510
+ "type": "object",
511
+ "additionalProperties": true
512
+ },
513
+ "body": {
514
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
515
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Error",
516
+ "type": "object",
517
+ "additionalProperties": false,
518
+ "description": "Server error message",
519
+ "properties": {
520
+ "message": {
521
+ "type": "string"
522
+ },
523
+ "code": {
524
+ "type": "string"
525
+ }
526
+ }
527
+ }
528
+ },
529
+ "required": ["body"],
530
+ "additionalProperties": false
531
+ }
532
+ }
533
+ }
534
+ },
535
+ "/payment-card/v3/tenant/:tenantId/card/:cardId/forced": {
536
+ "put": {
537
+ "request": {
538
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
539
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardForcedPutRequestContext",
540
+ "type": "object",
541
+ "properties": {
542
+ "params": {
543
+ "type": "object",
544
+ "additionalProperties": false,
545
+ "properties": {
546
+ "tenantId": {
547
+ "type": "string"
548
+ },
549
+ "cardId": {
550
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
551
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardId",
552
+ "type": "string",
553
+ "description": "Card identifier",
554
+ "format": "uuid"
555
+ }
556
+ },
557
+ "required": ["tenantId", "cardId"]
558
+ },
559
+ "headers": {
560
+ "type": "object",
561
+ "additionalProperties": true,
562
+ "properties": {
563
+ "created-on": {
564
+ "type": "string",
565
+ "format": "date-time"
566
+ }
567
+ },
568
+ "required": ["created-on"]
569
+ },
570
+ "body": {
571
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
572
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/NewForcedCardRequest",
573
+ "type": "object",
574
+ "additionalProperties": false,
575
+ "required": [
576
+ "encryptedCardNumber",
577
+ "encryptedDataEncryptionKey",
578
+ "dataEncryptionKeyId",
579
+ "expirationDate"
580
+ ],
581
+ "properties": {
582
+ "encryptedCardNumber": {
583
+ "description": "The card number must be encrypted with an AES generated secret key, i.e. data encryption key (DEK). That DEK must be RSA encrypted with the PublicKey returned by this service's GET /public-key operation. The encrypted DEK must be included in this request object as the encryptedDataEncryptionKey.",
584
+ "type": "string"
585
+ },
586
+ "encryptedDataEncryptionKey": {
587
+ "description": "RSA encrypted data encryption key used to AES encrypt encryptedCardNumber",
588
+ "type": "string"
589
+ },
590
+ "dataEncryptionKeyId": {
591
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
592
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKeyId",
593
+ "type": "string",
594
+ "description": "Identifier for the encryption keys used to encrypt the Card object.\n",
595
+ "format": "uuid"
596
+ },
597
+ "expirationDate": {
598
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
599
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ExpirationDate",
600
+ "type": "string",
601
+ "pattern": "([0-9][0-9])(0[1-9]|1[0-2])",
602
+ "format": "YYMM",
603
+ "description": "Expiration date for the card and will be assumed to be the last millisecond of the month",
604
+ "minLength": 4,
605
+ "maxLength": 4
606
+ }
607
+ }
608
+ }
609
+ },
610
+ "required": ["params", "headers", "body"],
611
+ "additionalProperties": false
612
+ },
613
+ "responses": {
614
+ "200": {
615
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
616
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardForcedPutResponseOK",
617
+ "type": "object",
618
+ "properties": {
619
+ "headers": {
620
+ "type": "object",
621
+ "properties": {
622
+ "created-on": {
623
+ "type": "string",
624
+ "format": "date-time"
625
+ },
626
+ "updated-on": {
627
+ "type": "string",
628
+ "format": "date-time"
629
+ },
630
+ "etag": {
631
+ "type": "string"
632
+ }
633
+ },
634
+ "required": ["created-on", "updated-on", "etag"]
635
+ },
636
+ "body": {
637
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
638
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Card",
639
+ "type": "object",
640
+ "additionalProperties": false,
641
+ "required": [
642
+ "cardId",
643
+ "bin",
644
+ "last4",
645
+ "expirationDate",
646
+ "encryptedCardNumber",
647
+ "serviceCode",
648
+ "pinOffset",
649
+ "sequenceNumber",
650
+ "state",
651
+ "active",
652
+ "block",
653
+ "lock",
654
+ "capture",
655
+ "dataEncryptionKeyId",
656
+ "storageKeyId",
657
+ "updatedOn",
658
+ "createdOn"
659
+ ],
660
+ "properties": {
661
+ "cardId": {
662
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
663
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardId",
664
+ "type": "string",
665
+ "description": "Card identifier",
666
+ "format": "uuid"
667
+ },
668
+ "bin": {
669
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
670
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/BankIdentificationNumber",
671
+ "type": "string",
672
+ "pattern": "^\\d{6}(\\d{2})?$",
673
+ "description": "The Bank Identification Number (BIN) is either the first 6 or 8 digits of a card number.\nIt identifies the issuing financial institution in a transaction, helping to route payments correctly.\n"
674
+ },
675
+ "last4": {
676
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
677
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Last4",
678
+ "type": "string",
679
+ "pattern": "^\\d+$",
680
+ "description": "The last four digits of the card number.",
681
+ "minLength": 4,
682
+ "maxLength": 4
683
+ },
684
+ "expirationDate": {
685
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
686
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ExpirationDate",
687
+ "type": "string",
688
+ "pattern": "([0-9][0-9])(0[1-9]|1[0-2])",
689
+ "format": "YYMM",
690
+ "description": "Expiration date for the card and will be assumed to be the last millisecond of the month",
691
+ "minLength": 4,
692
+ "maxLength": 4
693
+ },
694
+ "encryptedCardNumber": {
695
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
696
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardNumber",
697
+ "type": "string",
698
+ "pattern": "^\\d+$",
699
+ "description": "The Primary Account Number (PAN) of the card.",
700
+ "minLength": 15,
701
+ "maxLength": 19
702
+ },
703
+ "serviceCode": {
704
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
705
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ServiceCode",
706
+ "type": "string",
707
+ "pattern": "^\\d+$",
708
+ "description": "Used to set general guidelines for how the card can be used, e.g. domestic only or international, online\nauthorizations only, etc.\n",
709
+ "minLength": 3,
710
+ "maxLength": 3
711
+ },
712
+ "pinOffset": {
713
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
714
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PinOffset",
715
+ "type": "string",
716
+ "description": "Offset used to calculate the user-defined PIN.",
717
+ "pattern": "^\\d+$",
718
+ "minLength": 4,
719
+ "maxLength": 12
720
+ },
721
+ "sequenceNumber": {
722
+ "type": "integer",
723
+ "description": "Used to differentiate cards with same card number and expiration date."
724
+ },
725
+ "state": {
726
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
727
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/StateStatus",
728
+ "description": "The state status for the card.",
729
+ "type": "string",
730
+ "enum": ["CURRENT", "REISSUED", "RETIRED", "FORCED"]
731
+ },
732
+ "active": {
733
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
734
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ActiveStatus",
735
+ "description": "The active/inactive status for the card",
736
+ "type": "string",
737
+ "enum": ["INACTIVE", "ACTIVE"]
738
+ },
739
+ "block": {
740
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
741
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/BlockStatus",
742
+ "type": "string",
743
+ "description": "Whether the card is open or blocked for various reasons",
744
+ "enum": ["OPEN", "BLOCKED LOST OR STOLEN", "BLOCKED NO FRAUD", "BLOCKED WITH FRAUD"]
745
+ },
746
+ "lock": {
747
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
748
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/LockStatus",
749
+ "type": "string",
750
+ "description": "A cardholder initiated status. A locked card will fail authorization. Locked cards can be unlocked.\n\nA cardholder may choose to lock a card while temporarily misplaced.\n",
751
+ "enum": ["LOCKED", "UNLOCKED"]
752
+ },
753
+ "capture": {
754
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
755
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CaptureStatus",
756
+ "type": "string",
757
+ "description": "An issuer initiated status. If the value is CAPTURE, a merchant has the option to confiscate the card\nfrom the cardholder at the point of sale.\n",
758
+ "enum": ["CAPTURE", "NO CAPTURE"]
759
+ },
760
+ "dataEncryptionKeyId": {
761
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
762
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKeyId",
763
+ "type": "string",
764
+ "description": "Identifier for the encryption keys used to encrypt the Card object.\n",
765
+ "format": "uuid"
766
+ },
767
+ "storageKeyId": {
768
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
769
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/StorageKeyId",
770
+ "type": "string",
771
+ "description": "DEK's non-derived identifier to be used by Check Digit services only.\n"
772
+ },
773
+ "encryptedDataEncryptionKey": {
774
+ "description": "Encrypted DEK matching the publicKeyHash sent in the request. Used to decrypt values in the Card object.\n",
775
+ "type": "string"
776
+ },
777
+ "updatedOn": {
778
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
779
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/UpdatedOn",
780
+ "type": "string",
781
+ "format": "date-time",
782
+ "description": "The UTC datetime the resource was last updated."
783
+ },
784
+ "createdOn": {
785
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
786
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CreatedOn",
787
+ "type": "string",
788
+ "format": "date-time",
789
+ "description": "The UTC datetime the resource was created."
790
+ }
791
+ }
792
+ }
793
+ },
794
+ "required": ["headers", "body"],
795
+ "additionalProperties": false
796
+ },
797
+ "409": {
798
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
799
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardForcedPutResponseConflict",
800
+ "type": "object",
801
+ "properties": {
802
+ "headers": {
803
+ "type": "object",
804
+ "additionalProperties": true
805
+ }
806
+ },
807
+ "required": [],
808
+ "additionalProperties": false
809
+ },
810
+ "default": {
811
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
812
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardForcedPutResponseDefault",
813
+ "type": "object",
814
+ "properties": {
815
+ "headers": {
816
+ "type": "object",
817
+ "additionalProperties": true
818
+ },
819
+ "body": {
820
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
821
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Error",
822
+ "type": "object",
823
+ "additionalProperties": false,
824
+ "description": "Server error message",
825
+ "properties": {
826
+ "message": {
827
+ "type": "string"
828
+ },
829
+ "code": {
830
+ "type": "string"
831
+ }
832
+ }
833
+ }
834
+ },
835
+ "required": ["body"],
836
+ "additionalProperties": false
837
+ }
838
+ }
839
+ }
840
+ },
841
+ "/payment-card/v3/tenant/:tenantId/card/:cardId/active/:activeStatus": {
842
+ "put": {
843
+ "request": {
844
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
845
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardActivePutRequestContext",
846
+ "type": "object",
847
+ "properties": {
848
+ "params": {
849
+ "type": "object",
850
+ "additionalProperties": false,
851
+ "properties": {
852
+ "tenantId": {
853
+ "type": "string"
854
+ },
855
+ "cardId": {
856
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
857
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardId",
858
+ "type": "string",
859
+ "description": "Card identifier",
860
+ "format": "uuid"
861
+ },
862
+ "activeStatus": {
863
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
864
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ActiveStatus",
865
+ "description": "The active/inactive status for the card",
866
+ "type": "string",
867
+ "enum": ["INACTIVE", "ACTIVE"]
868
+ }
869
+ },
870
+ "required": ["tenantId", "cardId", "activeStatus"]
871
+ },
872
+ "headers": {
873
+ "type": "object",
874
+ "additionalProperties": true,
875
+ "properties": {
876
+ "created-on": {
877
+ "type": "string",
878
+ "format": "date-time"
879
+ },
880
+ "if-match": {
881
+ "type": "string"
882
+ }
883
+ },
884
+ "required": ["created-on", "if-match"]
885
+ }
886
+ },
887
+ "required": ["params", "headers"],
888
+ "additionalProperties": false
889
+ },
890
+ "responses": {
891
+ "204": {
892
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
893
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardActivePutResponseNoContent",
894
+ "type": "object",
895
+ "properties": {
896
+ "headers": {
897
+ "type": "object",
898
+ "properties": {
899
+ "created-on": {
900
+ "type": "string",
901
+ "format": "date-time"
902
+ },
903
+ "updated-on": {
904
+ "type": "string",
905
+ "format": "date-time"
906
+ },
907
+ "etag": {
908
+ "type": "string"
909
+ }
910
+ },
911
+ "required": ["created-on", "updated-on", "etag"]
912
+ }
913
+ },
914
+ "required": ["headers"],
915
+ "additionalProperties": false
916
+ },
917
+ "409": {
918
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
919
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardActivePutResponseConflict",
920
+ "type": "object",
921
+ "properties": {
922
+ "headers": {
923
+ "type": "object",
924
+ "additionalProperties": true
925
+ }
926
+ },
927
+ "required": [],
928
+ "additionalProperties": false
929
+ },
930
+ "412": {
931
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
932
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardActivePutResponsePreconditionFailed",
933
+ "type": "object",
934
+ "properties": {
935
+ "headers": {
936
+ "type": "object",
937
+ "additionalProperties": true
938
+ }
939
+ },
940
+ "required": [],
941
+ "additionalProperties": false
942
+ },
943
+ "422": {
944
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
945
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardActivePutResponseUnprocessableEntity",
946
+ "type": "object",
947
+ "properties": {
948
+ "headers": {
949
+ "type": "object",
950
+ "additionalProperties": true
951
+ },
952
+ "body": {
953
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
954
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Error",
955
+ "type": "object",
956
+ "additionalProperties": false,
957
+ "description": "Server error message",
958
+ "properties": {
959
+ "message": {
960
+ "type": "string"
961
+ },
962
+ "code": {
963
+ "type": "string"
964
+ }
965
+ }
966
+ }
967
+ },
968
+ "required": ["body"],
969
+ "additionalProperties": false
970
+ },
971
+ "default": {
972
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
973
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardActivePutResponseDefault",
974
+ "type": "object",
975
+ "properties": {
976
+ "headers": {
977
+ "type": "object",
978
+ "additionalProperties": true
979
+ },
980
+ "body": {
981
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
982
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Error",
983
+ "type": "object",
984
+ "additionalProperties": false,
985
+ "description": "Server error message",
986
+ "properties": {
987
+ "message": {
988
+ "type": "string"
989
+ },
990
+ "code": {
991
+ "type": "string"
992
+ }
993
+ }
994
+ }
995
+ },
996
+ "required": ["body"],
997
+ "additionalProperties": false
998
+ }
999
+ }
1000
+ }
1001
+ },
1002
+ "/payment-card/v3/tenant/:tenantId/card/:cardId/block/:blockStatus": {
1003
+ "put": {
1004
+ "request": {
1005
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1006
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardBlockPutRequestContext",
1007
+ "type": "object",
1008
+ "properties": {
1009
+ "params": {
1010
+ "type": "object",
1011
+ "additionalProperties": false,
1012
+ "properties": {
1013
+ "tenantId": {
1014
+ "type": "string"
1015
+ },
1016
+ "cardId": {
1017
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1018
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardId",
1019
+ "type": "string",
1020
+ "description": "Card identifier",
1021
+ "format": "uuid"
1022
+ },
1023
+ "blockStatus": {
1024
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1025
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/BlockStatus",
1026
+ "type": "string",
1027
+ "description": "Whether the card is open or blocked for various reasons",
1028
+ "enum": ["OPEN", "BLOCKED LOST OR STOLEN", "BLOCKED NO FRAUD", "BLOCKED WITH FRAUD"]
1029
+ }
1030
+ },
1031
+ "required": ["tenantId", "cardId", "blockStatus"]
1032
+ },
1033
+ "headers": {
1034
+ "type": "object",
1035
+ "additionalProperties": true,
1036
+ "properties": {
1037
+ "created-on": {
1038
+ "type": "string",
1039
+ "format": "date-time"
1040
+ },
1041
+ "if-match": {
1042
+ "type": "string"
1043
+ }
1044
+ },
1045
+ "required": ["created-on", "if-match"]
1046
+ }
1047
+ },
1048
+ "required": ["params", "headers"],
1049
+ "additionalProperties": false
1050
+ },
1051
+ "responses": {
1052
+ "204": {
1053
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1054
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardBlockPutResponseNoContent",
1055
+ "type": "object",
1056
+ "properties": {
1057
+ "headers": {
1058
+ "type": "object",
1059
+ "properties": {
1060
+ "created-on": {
1061
+ "type": "string",
1062
+ "format": "date-time"
1063
+ },
1064
+ "updated-on": {
1065
+ "type": "string",
1066
+ "format": "date-time"
1067
+ },
1068
+ "etag": {
1069
+ "type": "string"
1070
+ }
1071
+ },
1072
+ "required": ["created-on", "updated-on", "etag"]
1073
+ }
1074
+ },
1075
+ "required": ["headers"],
1076
+ "additionalProperties": false
1077
+ },
1078
+ "409": {
1079
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1080
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardBlockPutResponseConflict",
1081
+ "type": "object",
1082
+ "properties": {
1083
+ "headers": {
1084
+ "type": "object",
1085
+ "additionalProperties": true
1086
+ }
1087
+ },
1088
+ "required": [],
1089
+ "additionalProperties": false
1090
+ },
1091
+ "412": {
1092
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1093
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardBlockPutResponsePreconditionFailed",
1094
+ "type": "object",
1095
+ "properties": {
1096
+ "headers": {
1097
+ "type": "object",
1098
+ "additionalProperties": true
1099
+ }
1100
+ },
1101
+ "required": [],
1102
+ "additionalProperties": false
1103
+ },
1104
+ "422": {
1105
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1106
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardBlockPutResponseUnprocessableEntity",
1107
+ "type": "object",
1108
+ "properties": {
1109
+ "headers": {
1110
+ "type": "object",
1111
+ "additionalProperties": true
1112
+ },
1113
+ "body": {
1114
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1115
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Error",
1116
+ "type": "object",
1117
+ "additionalProperties": false,
1118
+ "description": "Server error message",
1119
+ "properties": {
1120
+ "message": {
1121
+ "type": "string"
1122
+ },
1123
+ "code": {
1124
+ "type": "string"
1125
+ }
1126
+ }
1127
+ }
1128
+ },
1129
+ "required": ["body"],
1130
+ "additionalProperties": false
1131
+ },
1132
+ "default": {
1133
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1134
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardBlockPutResponseDefault",
1135
+ "type": "object",
1136
+ "properties": {
1137
+ "headers": {
1138
+ "type": "object",
1139
+ "additionalProperties": true
1140
+ },
1141
+ "body": {
1142
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1143
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Error",
1144
+ "type": "object",
1145
+ "additionalProperties": false,
1146
+ "description": "Server error message",
1147
+ "properties": {
1148
+ "message": {
1149
+ "type": "string"
1150
+ },
1151
+ "code": {
1152
+ "type": "string"
1153
+ }
1154
+ }
1155
+ }
1156
+ },
1157
+ "required": ["body"],
1158
+ "additionalProperties": false
1159
+ }
1160
+ }
1161
+ }
1162
+ },
1163
+ "/payment-card/v3/tenant/:tenantId/card/:cardId/capture/:captureStatus": {
1164
+ "put": {
1165
+ "request": {
1166
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1167
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardCapturePutRequestContext",
1168
+ "type": "object",
1169
+ "properties": {
1170
+ "params": {
1171
+ "type": "object",
1172
+ "additionalProperties": false,
1173
+ "properties": {
1174
+ "tenantId": {
1175
+ "type": "string"
1176
+ },
1177
+ "cardId": {
1178
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1179
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardId",
1180
+ "type": "string",
1181
+ "description": "Card identifier",
1182
+ "format": "uuid"
1183
+ },
1184
+ "captureStatus": {
1185
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1186
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CaptureStatus",
1187
+ "type": "string",
1188
+ "description": "An issuer initiated status. If the value is CAPTURE, a merchant has the option to confiscate the card\nfrom the cardholder at the point of sale.\n",
1189
+ "enum": ["CAPTURE", "NO CAPTURE"]
1190
+ }
1191
+ },
1192
+ "required": ["tenantId", "cardId", "captureStatus"]
1193
+ },
1194
+ "headers": {
1195
+ "type": "object",
1196
+ "additionalProperties": true,
1197
+ "properties": {
1198
+ "created-on": {
1199
+ "type": "string",
1200
+ "format": "date-time"
1201
+ },
1202
+ "if-match": {
1203
+ "type": "string"
1204
+ }
1205
+ },
1206
+ "required": ["created-on", "if-match"]
1207
+ }
1208
+ },
1209
+ "required": ["params", "headers"],
1210
+ "additionalProperties": false
1211
+ },
1212
+ "responses": {
1213
+ "204": {
1214
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1215
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardCapturePutResponseNoContent",
1216
+ "type": "object",
1217
+ "properties": {
1218
+ "headers": {
1219
+ "type": "object",
1220
+ "properties": {
1221
+ "created-on": {
1222
+ "type": "string",
1223
+ "format": "date-time"
1224
+ },
1225
+ "updated-on": {
1226
+ "type": "string",
1227
+ "format": "date-time"
1228
+ },
1229
+ "etag": {
1230
+ "type": "string"
1231
+ }
1232
+ },
1233
+ "required": ["created-on", "updated-on", "etag"]
1234
+ }
1235
+ },
1236
+ "required": ["headers"],
1237
+ "additionalProperties": false
1238
+ },
1239
+ "409": {
1240
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1241
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardCapturePutResponseConflict",
1242
+ "type": "object",
1243
+ "properties": {
1244
+ "headers": {
1245
+ "type": "object",
1246
+ "additionalProperties": true
1247
+ }
1248
+ },
1249
+ "required": [],
1250
+ "additionalProperties": false
1251
+ },
1252
+ "412": {
1253
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1254
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardCapturePutResponsePreconditionFailed",
1255
+ "type": "object",
1256
+ "properties": {
1257
+ "headers": {
1258
+ "type": "object",
1259
+ "additionalProperties": true
1260
+ }
1261
+ },
1262
+ "required": [],
1263
+ "additionalProperties": false
1264
+ },
1265
+ "422": {
1266
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1267
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardCapturePutResponseUnprocessableEntity",
1268
+ "type": "object",
1269
+ "properties": {
1270
+ "headers": {
1271
+ "type": "object",
1272
+ "additionalProperties": true
1273
+ },
1274
+ "body": {
1275
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1276
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Error",
1277
+ "type": "object",
1278
+ "additionalProperties": false,
1279
+ "description": "Server error message",
1280
+ "properties": {
1281
+ "message": {
1282
+ "type": "string"
1283
+ },
1284
+ "code": {
1285
+ "type": "string"
1286
+ }
1287
+ }
1288
+ }
1289
+ },
1290
+ "required": ["body"],
1291
+ "additionalProperties": false
1292
+ },
1293
+ "default": {
1294
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1295
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardCapturePutResponseDefault",
1296
+ "type": "object",
1297
+ "properties": {
1298
+ "headers": {
1299
+ "type": "object",
1300
+ "additionalProperties": true
1301
+ },
1302
+ "body": {
1303
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1304
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Error",
1305
+ "type": "object",
1306
+ "additionalProperties": false,
1307
+ "description": "Server error message",
1308
+ "properties": {
1309
+ "message": {
1310
+ "type": "string"
1311
+ },
1312
+ "code": {
1313
+ "type": "string"
1314
+ }
1315
+ }
1316
+ }
1317
+ },
1318
+ "required": ["body"],
1319
+ "additionalProperties": false
1320
+ }
1321
+ }
1322
+ }
1323
+ },
1324
+ "/payment-card/v3/tenant/:tenantId/card/:cardId/lock/:lockStatus": {
1325
+ "put": {
1326
+ "request": {
1327
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1328
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardLockPutRequestContext",
1329
+ "type": "object",
1330
+ "properties": {
1331
+ "params": {
1332
+ "type": "object",
1333
+ "additionalProperties": false,
1334
+ "properties": {
1335
+ "tenantId": {
1336
+ "type": "string"
1337
+ },
1338
+ "cardId": {
1339
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1340
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardId",
1341
+ "type": "string",
1342
+ "description": "Card identifier",
1343
+ "format": "uuid"
1344
+ },
1345
+ "lockStatus": {
1346
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1347
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/LockStatus",
1348
+ "type": "string",
1349
+ "description": "A cardholder initiated status. A locked card will fail authorization. Locked cards can be unlocked.\n\nA cardholder may choose to lock a card while temporarily misplaced.\n",
1350
+ "enum": ["LOCKED", "UNLOCKED"]
1351
+ }
1352
+ },
1353
+ "required": ["tenantId", "cardId", "lockStatus"]
1354
+ },
1355
+ "headers": {
1356
+ "type": "object",
1357
+ "additionalProperties": true,
1358
+ "properties": {
1359
+ "created-on": {
1360
+ "type": "string",
1361
+ "format": "date-time"
1362
+ },
1363
+ "if-match": {
1364
+ "type": "string"
1365
+ }
1366
+ },
1367
+ "required": ["created-on", "if-match"]
1368
+ }
1369
+ },
1370
+ "required": ["params", "headers"],
1371
+ "additionalProperties": false
1372
+ },
1373
+ "responses": {
1374
+ "204": {
1375
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1376
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardLockPutResponseNoContent",
1377
+ "type": "object",
1378
+ "properties": {
1379
+ "headers": {
1380
+ "type": "object",
1381
+ "properties": {
1382
+ "created-on": {
1383
+ "type": "string",
1384
+ "format": "date-time"
1385
+ },
1386
+ "updated-on": {
1387
+ "type": "string",
1388
+ "format": "date-time"
1389
+ },
1390
+ "etag": {
1391
+ "type": "string"
1392
+ }
1393
+ },
1394
+ "required": ["created-on", "updated-on", "etag"]
1395
+ }
1396
+ },
1397
+ "required": ["headers"],
1398
+ "additionalProperties": false
1399
+ },
1400
+ "409": {
1401
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1402
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardLockPutResponseConflict",
1403
+ "type": "object",
1404
+ "properties": {
1405
+ "headers": {
1406
+ "type": "object",
1407
+ "additionalProperties": true
1408
+ }
1409
+ },
1410
+ "required": [],
1411
+ "additionalProperties": false
1412
+ },
1413
+ "412": {
1414
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1415
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardLockPutResponsePreconditionFailed",
1416
+ "type": "object",
1417
+ "properties": {
1418
+ "headers": {
1419
+ "type": "object",
1420
+ "additionalProperties": true
1421
+ }
1422
+ },
1423
+ "required": [],
1424
+ "additionalProperties": false
1425
+ },
1426
+ "422": {
1427
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1428
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardLockPutResponseUnprocessableEntity",
1429
+ "type": "object",
1430
+ "properties": {
1431
+ "headers": {
1432
+ "type": "object",
1433
+ "additionalProperties": true
1434
+ },
1435
+ "body": {
1436
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1437
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Error",
1438
+ "type": "object",
1439
+ "additionalProperties": false,
1440
+ "description": "Server error message",
1441
+ "properties": {
1442
+ "message": {
1443
+ "type": "string"
1444
+ },
1445
+ "code": {
1446
+ "type": "string"
1447
+ }
1448
+ }
1449
+ }
1450
+ },
1451
+ "required": ["body"],
1452
+ "additionalProperties": false
1453
+ },
1454
+ "default": {
1455
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1456
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardLockPutResponseDefault",
1457
+ "type": "object",
1458
+ "properties": {
1459
+ "headers": {
1460
+ "type": "object",
1461
+ "additionalProperties": true
1462
+ },
1463
+ "body": {
1464
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1465
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Error",
1466
+ "type": "object",
1467
+ "additionalProperties": false,
1468
+ "description": "Server error message",
1469
+ "properties": {
1470
+ "message": {
1471
+ "type": "string"
1472
+ },
1473
+ "code": {
1474
+ "type": "string"
1475
+ }
1476
+ }
1477
+ }
1478
+ },
1479
+ "required": ["body"],
1480
+ "additionalProperties": false
1481
+ }
1482
+ }
1483
+ }
1484
+ },
1485
+ "/payment-card/v3/tenant/:tenantId/card/:cardId/state/:stateStatus": {
1486
+ "put": {
1487
+ "request": {
1488
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1489
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardStatePutRequestContext",
1490
+ "type": "object",
1491
+ "properties": {
1492
+ "params": {
1493
+ "type": "object",
1494
+ "additionalProperties": false,
1495
+ "properties": {
1496
+ "tenantId": {
1497
+ "type": "string"
1498
+ },
1499
+ "cardId": {
1500
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1501
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardId",
1502
+ "type": "string",
1503
+ "description": "Card identifier",
1504
+ "format": "uuid"
1505
+ },
1506
+ "stateStatus": {
1507
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1508
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/StateStatus",
1509
+ "description": "The state status for the card.",
1510
+ "type": "string",
1511
+ "enum": ["CURRENT", "REISSUED", "RETIRED", "FORCED"]
1512
+ }
1513
+ },
1514
+ "required": ["tenantId", "cardId", "stateStatus"]
1515
+ },
1516
+ "headers": {
1517
+ "type": "object",
1518
+ "additionalProperties": true,
1519
+ "properties": {
1520
+ "created-on": {
1521
+ "type": "string",
1522
+ "format": "date-time"
1523
+ },
1524
+ "if-match": {
1525
+ "type": "string"
1526
+ }
1527
+ },
1528
+ "required": ["created-on", "if-match"]
1529
+ }
1530
+ },
1531
+ "required": ["params", "headers"],
1532
+ "additionalProperties": false
1533
+ },
1534
+ "responses": {
1535
+ "204": {
1536
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1537
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardStatePutResponseNoContent",
1538
+ "type": "object",
1539
+ "properties": {
1540
+ "headers": {
1541
+ "type": "object",
1542
+ "properties": {
1543
+ "created-on": {
1544
+ "type": "string",
1545
+ "format": "date-time"
1546
+ },
1547
+ "updated-on": {
1548
+ "type": "string",
1549
+ "format": "date-time"
1550
+ },
1551
+ "etag": {
1552
+ "type": "string"
1553
+ }
1554
+ },
1555
+ "required": ["created-on", "updated-on", "etag"]
1556
+ }
1557
+ },
1558
+ "required": ["headers"],
1559
+ "additionalProperties": false
1560
+ },
1561
+ "409": {
1562
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1563
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardStatePutResponseConflict",
1564
+ "type": "object",
1565
+ "properties": {
1566
+ "headers": {
1567
+ "type": "object",
1568
+ "additionalProperties": true
1569
+ }
1570
+ },
1571
+ "required": [],
1572
+ "additionalProperties": false
1573
+ },
1574
+ "412": {
1575
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1576
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardStatePutResponsePreconditionFailed",
1577
+ "type": "object",
1578
+ "properties": {
1579
+ "headers": {
1580
+ "type": "object",
1581
+ "additionalProperties": true
1582
+ }
1583
+ },
1584
+ "required": [],
1585
+ "additionalProperties": false
1586
+ },
1587
+ "422": {
1588
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1589
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardStatePutResponseUnprocessableEntity",
1590
+ "type": "object",
1591
+ "properties": {
1592
+ "headers": {
1593
+ "type": "object",
1594
+ "additionalProperties": true
1595
+ },
1596
+ "body": {
1597
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1598
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Error",
1599
+ "type": "object",
1600
+ "additionalProperties": false,
1601
+ "description": "Server error message",
1602
+ "properties": {
1603
+ "message": {
1604
+ "type": "string"
1605
+ },
1606
+ "code": {
1607
+ "type": "string"
1608
+ }
1609
+ }
1610
+ }
1611
+ },
1612
+ "required": ["body"],
1613
+ "additionalProperties": false
1614
+ },
1615
+ "default": {
1616
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1617
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardStatePutResponseDefault",
1618
+ "type": "object",
1619
+ "properties": {
1620
+ "headers": {
1621
+ "type": "object",
1622
+ "additionalProperties": true
1623
+ },
1624
+ "body": {
1625
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1626
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Error",
1627
+ "type": "object",
1628
+ "additionalProperties": false,
1629
+ "description": "Server error message",
1630
+ "properties": {
1631
+ "message": {
1632
+ "type": "string"
1633
+ },
1634
+ "code": {
1635
+ "type": "string"
1636
+ }
1637
+ }
1638
+ }
1639
+ },
1640
+ "required": ["body"],
1641
+ "additionalProperties": false
1642
+ }
1643
+ }
1644
+ }
1645
+ },
1646
+ "/payment-card/v3/tenant/:tenantId/card/:cardId/history": {},
1647
+ "/payment-card/v3/tenant/:tenantId/card-number/:cardId/key/:publicKeyHashPath": {
1648
+ "put": {
1649
+ "request": {
1650
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1651
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardNumberKeyPutRequestContext",
1652
+ "type": "object",
1653
+ "properties": {
1654
+ "params": {
1655
+ "type": "object",
1656
+ "additionalProperties": false,
1657
+ "properties": {
1658
+ "tenantId": {
1659
+ "type": "string"
1660
+ },
1661
+ "cardId": {
1662
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1663
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardId",
1664
+ "type": "string",
1665
+ "description": "Card identifier",
1666
+ "format": "uuid"
1667
+ },
1668
+ "publicKeyHashPath": {
1669
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1670
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Hash",
1671
+ "type": "string",
1672
+ "format": "uuid",
1673
+ "example": "15a85f64-5717-4562-b3fc-2c963f66afa6",
1674
+ "description": "UUID derived using @checkdigit/hash."
1675
+ }
1676
+ },
1677
+ "required": ["tenantId", "cardId", "publicKeyHashPath"]
1678
+ },
1679
+ "headers": {
1680
+ "type": "object",
1681
+ "additionalProperties": true
1682
+ },
1683
+ "body": {
1684
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1685
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardNumberRequest",
1686
+ "type": "object",
1687
+ "additionalProperties": false,
1688
+ "required": ["publicKey"],
1689
+ "properties": {
1690
+ "publicKey": {
1691
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1692
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PublicKey",
1693
+ "description": "An RSA generated public key in PEM format.",
1694
+ "type": "string",
1695
+ "example": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwm2sxmRdTF7ZIBA6+ngO\n8jOTCHmID0PpQB1q85+hrcLSfB1rWY9bzNNLabBo/ajDnA4Pcadq/x6gpg70qZcR\n9Wxm6TttKzBPZsxasGXgSTDqEi2KcYZgq1mL4qyxUvyIms7/llGy+W9b5huZaVcO\nxdT1tw/zctbOhb6S2t5vH+zkta/2ncUXjG7i8XdLsJ1qe4K1kYbA4KVkOMmAtw7O\n4STk0TZDD0YARdmrciorJjbIVt0Xj1CrYQ5QbDGrlfeXgrcZwX5f9wT2MnKlY5oZ\n5Wtb57oGtLkVf8g6vN/2jGtAmOmHK2hHwNd/+zUet5G/S5uwEli4RgMPP4pUoKgd\nGQIDAQAB\n-----END PUBLIC KEY-----\n"
1696
+ }
1697
+ }
1698
+ }
1699
+ },
1700
+ "required": ["params", "body"],
1701
+ "additionalProperties": false
1702
+ },
1703
+ "responses": {
1704
+ "200": {
1705
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1706
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardNumberKeyPutResponseOK",
1707
+ "type": "object",
1708
+ "properties": {
1709
+ "headers": {
1710
+ "type": "object",
1711
+ "additionalProperties": true
1712
+ },
1713
+ "body": {
1714
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1715
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/EncryptedCardNumber",
1716
+ "type": "object",
1717
+ "additionalProperties": false,
1718
+ "required": ["encryptedDataEncryptionKey", "encryptedCardNumber"],
1719
+ "properties": {
1720
+ "encryptedDataEncryptionKey": {
1721
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1722
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKey",
1723
+ "type": "string",
1724
+ "description": "AES generated encryption key used to encrypt sensitive data."
1725
+ },
1726
+ "encryptedCardNumber": {
1727
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1728
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardNumber",
1729
+ "type": "string",
1730
+ "pattern": "^\\d+$",
1731
+ "description": "The Primary Account Number (PAN) of the card.",
1732
+ "minLength": 15,
1733
+ "maxLength": 19
1734
+ }
1735
+ }
1736
+ }
1737
+ },
1738
+ "required": ["body"],
1739
+ "additionalProperties": false
1740
+ },
1741
+ "default": {
1742
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1743
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardNumberKeyPutResponseDefault",
1744
+ "type": "object",
1745
+ "properties": {
1746
+ "headers": {
1747
+ "type": "object",
1748
+ "additionalProperties": true
1749
+ },
1750
+ "body": {
1751
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1752
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Error",
1753
+ "type": "object",
1754
+ "additionalProperties": false,
1755
+ "description": "Server error message",
1756
+ "properties": {
1757
+ "message": {
1758
+ "type": "string"
1759
+ },
1760
+ "code": {
1761
+ "type": "string"
1762
+ }
1763
+ }
1764
+ }
1765
+ },
1766
+ "required": ["body"],
1767
+ "additionalProperties": false
1768
+ }
1769
+ }
1770
+ }
1771
+ },
1772
+ "/payment-card/v3/tenant/:tenantId/pin-key/:pinKeyId": {
1773
+ "put": {
1774
+ "request": {
1775
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1776
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantPinKeyPutRequestContext",
1777
+ "type": "object",
1778
+ "properties": {
1779
+ "params": {
1780
+ "type": "object",
1781
+ "additionalProperties": false,
1782
+ "properties": {
1783
+ "tenantId": {
1784
+ "type": "string"
1785
+ },
1786
+ "pinKeyId": {
1787
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1788
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PinKeyId",
1789
+ "type": "string",
1790
+ "description": "PIN key identifier.",
1791
+ "format": "uuid"
1792
+ }
1793
+ },
1794
+ "required": ["tenantId", "pinKeyId"]
1795
+ },
1796
+ "headers": {
1797
+ "type": "object",
1798
+ "additionalProperties": true
1799
+ }
1800
+ },
1801
+ "required": ["params"],
1802
+ "additionalProperties": false
1803
+ },
1804
+ "responses": {
1805
+ "200": {
1806
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1807
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantPinKeyPutResponseOK",
1808
+ "type": "object",
1809
+ "properties": {
1810
+ "headers": {
1811
+ "type": "object",
1812
+ "additionalProperties": true
1813
+ },
1814
+ "body": {
1815
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1816
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PinKeyResponse",
1817
+ "description": "This object contains an rsa generated public key to be used when transmitting data for a PIN change. This key\nis only valid to be used for a single PIN change.\n",
1818
+ "type": "object",
1819
+ "required": ["publicKey"],
1820
+ "properties": {
1821
+ "publicKey": {
1822
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1823
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PublicKey",
1824
+ "description": "An RSA generated public key in PEM format.",
1825
+ "type": "string",
1826
+ "example": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwm2sxmRdTF7ZIBA6+ngO\n8jOTCHmID0PpQB1q85+hrcLSfB1rWY9bzNNLabBo/ajDnA4Pcadq/x6gpg70qZcR\n9Wxm6TttKzBPZsxasGXgSTDqEi2KcYZgq1mL4qyxUvyIms7/llGy+W9b5huZaVcO\nxdT1tw/zctbOhb6S2t5vH+zkta/2ncUXjG7i8XdLsJ1qe4K1kYbA4KVkOMmAtw7O\n4STk0TZDD0YARdmrciorJjbIVt0Xj1CrYQ5QbDGrlfeXgrcZwX5f9wT2MnKlY5oZ\n5Wtb57oGtLkVf8g6vN/2jGtAmOmHK2hHwNd/+zUet5G/S5uwEli4RgMPP4pUoKgd\nGQIDAQAB\n-----END PUBLIC KEY-----\n"
1827
+ }
1828
+ }
1829
+ }
1830
+ },
1831
+ "required": ["body"],
1832
+ "additionalProperties": false
1833
+ },
1834
+ "default": {
1835
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1836
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantPinKeyPutResponseDefault",
1837
+ "type": "object",
1838
+ "properties": {
1839
+ "headers": {
1840
+ "type": "object",
1841
+ "additionalProperties": true
1842
+ },
1843
+ "body": {
1844
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1845
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Error",
1846
+ "type": "object",
1847
+ "additionalProperties": false,
1848
+ "description": "Server error message",
1849
+ "properties": {
1850
+ "message": {
1851
+ "type": "string"
1852
+ },
1853
+ "code": {
1854
+ "type": "string"
1855
+ }
1856
+ }
1857
+ }
1858
+ },
1859
+ "required": ["body"],
1860
+ "additionalProperties": false
1861
+ }
1862
+ }
1863
+ }
1864
+ },
1865
+ "/payment-card/v3/tenant/:tenantId/card/:cardId/pin/:pinKeyId": {
1866
+ "put": {
1867
+ "request": {
1868
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1869
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardPinPutRequestContext",
1870
+ "type": "object",
1871
+ "properties": {
1872
+ "params": {
1873
+ "type": "object",
1874
+ "additionalProperties": false,
1875
+ "properties": {
1876
+ "tenantId": {
1877
+ "type": "string"
1878
+ },
1879
+ "cardId": {
1880
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1881
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardId",
1882
+ "type": "string",
1883
+ "description": "Card identifier",
1884
+ "format": "uuid"
1885
+ },
1886
+ "pinKeyId": {
1887
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1888
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PinKeyId",
1889
+ "type": "string",
1890
+ "description": "PIN key identifier.",
1891
+ "format": "uuid"
1892
+ }
1893
+ },
1894
+ "required": ["tenantId", "cardId", "pinKeyId"]
1895
+ },
1896
+ "headers": {
1897
+ "type": "object",
1898
+ "additionalProperties": true,
1899
+ "properties": {
1900
+ "created-on": {
1901
+ "type": "string",
1902
+ "format": "date-time"
1903
+ },
1904
+ "if-match": {
1905
+ "type": "string"
1906
+ }
1907
+ },
1908
+ "required": ["created-on", "if-match"]
1909
+ },
1910
+ "body": {
1911
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1912
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PinRequest",
1913
+ "type": "object",
1914
+ "additionalProperties": false,
1915
+ "required": ["encryptedDataEncryptionKey", "encryptedPin"],
1916
+ "properties": {
1917
+ "encryptedDataEncryptionKey": {
1918
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1919
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKey",
1920
+ "type": "string",
1921
+ "description": "AES generated encryption key used to encrypt sensitive data."
1922
+ },
1923
+ "encryptedPin": {
1924
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1925
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/EncryptedPin",
1926
+ "type": "string",
1927
+ "description": "An AES encrypted PIN."
1928
+ }
1929
+ }
1930
+ }
1931
+ },
1932
+ "required": ["params", "headers", "body"],
1933
+ "additionalProperties": false
1934
+ },
1935
+ "responses": {
1936
+ "204": {
1937
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1938
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardPinPutResponseNoContent",
1939
+ "type": "object",
1940
+ "properties": {
1941
+ "headers": {
1942
+ "type": "object",
1943
+ "properties": {
1944
+ "created-on": {
1945
+ "type": "string",
1946
+ "format": "date-time"
1947
+ },
1948
+ "updated-on": {
1949
+ "type": "string",
1950
+ "format": "date-time"
1951
+ },
1952
+ "etag": {
1953
+ "type": "string"
1954
+ }
1955
+ },
1956
+ "required": ["created-on", "updated-on", "etag"]
1957
+ }
1958
+ },
1959
+ "required": ["headers"],
1960
+ "additionalProperties": false
1961
+ },
1962
+ "409": {
1963
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1964
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardPinPutResponseConflict",
1965
+ "type": "object",
1966
+ "properties": {
1967
+ "headers": {
1968
+ "type": "object",
1969
+ "additionalProperties": true
1970
+ }
1971
+ },
1972
+ "required": [],
1973
+ "additionalProperties": false
1974
+ },
1975
+ "412": {
1976
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1977
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardPinPutResponsePreconditionFailed",
1978
+ "type": "object",
1979
+ "properties": {
1980
+ "headers": {
1981
+ "type": "object",
1982
+ "additionalProperties": true
1983
+ }
1984
+ },
1985
+ "required": [],
1986
+ "additionalProperties": false
1987
+ },
1988
+ "default": {
1989
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1990
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/api/TenantCardPinPutResponseDefault",
1991
+ "type": "object",
1992
+ "properties": {
1993
+ "headers": {
1994
+ "type": "object",
1995
+ "additionalProperties": true
1996
+ },
1997
+ "body": {
1998
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1999
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Error",
2000
+ "type": "object",
2001
+ "additionalProperties": false,
2002
+ "description": "Server error message",
2003
+ "properties": {
2004
+ "message": {
2005
+ "type": "string"
2006
+ },
2007
+ "code": {
2008
+ "type": "string"
2009
+ }
2010
+ }
2011
+ }
2012
+ },
2013
+ "required": ["body"],
2014
+ "additionalProperties": false
2015
+ }
2016
+ }
2017
+ }
2018
+ }
2019
+ },
2020
+ "definitions": {
2021
+ "BankIdentificationNumber": {
2022
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2023
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/BankIdentificationNumber",
2024
+ "type": "string",
2025
+ "pattern": "^\\d{6}(\\d{2})?$",
2026
+ "description": "The Bank Identification Number (BIN) is either the first 6 or 8 digits of a card number.\nIt identifies the issuing financial institution in a transaction, helping to route payments correctly.\n"
2027
+ },
2028
+ "Last4": {
2029
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2030
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Last4",
2031
+ "type": "string",
2032
+ "pattern": "^\\d+$",
2033
+ "description": "The last four digits of the card number.",
2034
+ "minLength": 4,
2035
+ "maxLength": 4
2036
+ },
2037
+ "CardNumber": {
2038
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2039
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardNumber",
2040
+ "type": "string",
2041
+ "pattern": "^\\d+$",
2042
+ "description": "The Primary Account Number (PAN) of the card.",
2043
+ "minLength": 15,
2044
+ "maxLength": 19
2045
+ },
2046
+ "PinOffset": {
2047
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2048
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PinOffset",
2049
+ "type": "string",
2050
+ "description": "Offset used to calculate the user-defined PIN.",
2051
+ "pattern": "^\\d+$",
2052
+ "minLength": 4,
2053
+ "maxLength": 12
2054
+ },
2055
+ "Card": {
2056
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2057
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Card",
2058
+ "type": "object",
2059
+ "additionalProperties": false,
2060
+ "required": [
2061
+ "cardId",
2062
+ "bin",
2063
+ "last4",
2064
+ "expirationDate",
2065
+ "encryptedCardNumber",
2066
+ "serviceCode",
2067
+ "pinOffset",
2068
+ "sequenceNumber",
2069
+ "state",
2070
+ "active",
2071
+ "block",
2072
+ "lock",
2073
+ "capture",
2074
+ "dataEncryptionKeyId",
2075
+ "storageKeyId",
2076
+ "updatedOn",
2077
+ "createdOn"
2078
+ ],
2079
+ "properties": {
2080
+ "cardId": {
2081
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2082
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardId",
2083
+ "type": "string",
2084
+ "description": "Card identifier",
2085
+ "format": "uuid"
2086
+ },
2087
+ "bin": {
2088
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2089
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/BankIdentificationNumber",
2090
+ "type": "string",
2091
+ "pattern": "^\\d{6}(\\d{2})?$",
2092
+ "description": "The Bank Identification Number (BIN) is either the first 6 or 8 digits of a card number.\nIt identifies the issuing financial institution in a transaction, helping to route payments correctly.\n"
2093
+ },
2094
+ "last4": {
2095
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2096
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Last4",
2097
+ "type": "string",
2098
+ "pattern": "^\\d+$",
2099
+ "description": "The last four digits of the card number.",
2100
+ "minLength": 4,
2101
+ "maxLength": 4
2102
+ },
2103
+ "expirationDate": {
2104
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2105
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ExpirationDate",
2106
+ "type": "string",
2107
+ "pattern": "([0-9][0-9])(0[1-9]|1[0-2])",
2108
+ "format": "YYMM",
2109
+ "description": "Expiration date for the card and will be assumed to be the last millisecond of the month",
2110
+ "minLength": 4,
2111
+ "maxLength": 4
2112
+ },
2113
+ "encryptedCardNumber": {
2114
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2115
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardNumber",
2116
+ "type": "string",
2117
+ "pattern": "^\\d+$",
2118
+ "description": "The Primary Account Number (PAN) of the card.",
2119
+ "minLength": 15,
2120
+ "maxLength": 19
2121
+ },
2122
+ "serviceCode": {
2123
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2124
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ServiceCode",
2125
+ "type": "string",
2126
+ "pattern": "^\\d+$",
2127
+ "description": "Used to set general guidelines for how the card can be used, e.g. domestic only or international, online\nauthorizations only, etc.\n",
2128
+ "minLength": 3,
2129
+ "maxLength": 3
2130
+ },
2131
+ "pinOffset": {
2132
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2133
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PinOffset",
2134
+ "type": "string",
2135
+ "description": "Offset used to calculate the user-defined PIN.",
2136
+ "pattern": "^\\d+$",
2137
+ "minLength": 4,
2138
+ "maxLength": 12
2139
+ },
2140
+ "sequenceNumber": {
2141
+ "type": "integer",
2142
+ "description": "Used to differentiate cards with same card number and expiration date."
2143
+ },
2144
+ "state": {
2145
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2146
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/StateStatus",
2147
+ "description": "The state status for the card.",
2148
+ "type": "string",
2149
+ "enum": ["CURRENT", "REISSUED", "RETIRED", "FORCED"]
2150
+ },
2151
+ "active": {
2152
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2153
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ActiveStatus",
2154
+ "description": "The active/inactive status for the card",
2155
+ "type": "string",
2156
+ "enum": ["INACTIVE", "ACTIVE"]
2157
+ },
2158
+ "block": {
2159
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2160
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/BlockStatus",
2161
+ "type": "string",
2162
+ "description": "Whether the card is open or blocked for various reasons",
2163
+ "enum": ["OPEN", "BLOCKED LOST OR STOLEN", "BLOCKED NO FRAUD", "BLOCKED WITH FRAUD"]
2164
+ },
2165
+ "lock": {
2166
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2167
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/LockStatus",
2168
+ "type": "string",
2169
+ "description": "A cardholder initiated status. A locked card will fail authorization. Locked cards can be unlocked.\n\nA cardholder may choose to lock a card while temporarily misplaced.\n",
2170
+ "enum": ["LOCKED", "UNLOCKED"]
2171
+ },
2172
+ "capture": {
2173
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2174
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CaptureStatus",
2175
+ "type": "string",
2176
+ "description": "An issuer initiated status. If the value is CAPTURE, a merchant has the option to confiscate the card\nfrom the cardholder at the point of sale.\n",
2177
+ "enum": ["CAPTURE", "NO CAPTURE"]
2178
+ },
2179
+ "dataEncryptionKeyId": {
2180
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2181
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKeyId",
2182
+ "type": "string",
2183
+ "description": "Identifier for the encryption keys used to encrypt the Card object.\n",
2184
+ "format": "uuid"
2185
+ },
2186
+ "storageKeyId": {
2187
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2188
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/StorageKeyId",
2189
+ "type": "string",
2190
+ "description": "DEK's non-derived identifier to be used by Check Digit services only.\n"
2191
+ },
2192
+ "encryptedDataEncryptionKey": {
2193
+ "description": "Encrypted DEK matching the publicKeyHash sent in the request. Used to decrypt values in the Card object.\n",
2194
+ "type": "string"
2195
+ },
2196
+ "updatedOn": {
2197
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2198
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/UpdatedOn",
2199
+ "type": "string",
2200
+ "format": "date-time",
2201
+ "description": "The UTC datetime the resource was last updated."
2202
+ },
2203
+ "createdOn": {
2204
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2205
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CreatedOn",
2206
+ "type": "string",
2207
+ "format": "date-time",
2208
+ "description": "The UTC datetime the resource was created."
2209
+ }
2210
+ }
2211
+ },
2212
+ "UpdatedOn": {
2213
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2214
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/UpdatedOn",
2215
+ "type": "string",
2216
+ "format": "date-time",
2217
+ "description": "The UTC datetime the resource was last updated."
2218
+ },
2219
+ "CreatedOn": {
2220
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2221
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CreatedOn",
2222
+ "type": "string",
2223
+ "format": "date-time",
2224
+ "description": "The UTC datetime the resource was created."
2225
+ },
2226
+ "CardId": {
2227
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2228
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardId",
2229
+ "type": "string",
2230
+ "description": "Card identifier",
2231
+ "format": "uuid"
2232
+ },
2233
+ "Cards": {
2234
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2235
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Cards",
2236
+ "description": "An object containing a list of Card resources.",
2237
+ "type": "object",
2238
+ "required": ["cards"],
2239
+ "properties": {
2240
+ "cards": {
2241
+ "type": "array",
2242
+ "minItems": 0,
2243
+ "items": {
2244
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2245
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Card",
2246
+ "type": "object",
2247
+ "additionalProperties": false,
2248
+ "required": [
2249
+ "cardId",
2250
+ "bin",
2251
+ "last4",
2252
+ "expirationDate",
2253
+ "encryptedCardNumber",
2254
+ "serviceCode",
2255
+ "pinOffset",
2256
+ "sequenceNumber",
2257
+ "state",
2258
+ "active",
2259
+ "block",
2260
+ "lock",
2261
+ "capture",
2262
+ "dataEncryptionKeyId",
2263
+ "storageKeyId",
2264
+ "updatedOn",
2265
+ "createdOn"
2266
+ ],
2267
+ "properties": {
2268
+ "cardId": {
2269
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2270
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardId",
2271
+ "type": "string",
2272
+ "description": "Card identifier",
2273
+ "format": "uuid"
2274
+ },
2275
+ "bin": {
2276
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2277
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/BankIdentificationNumber",
2278
+ "type": "string",
2279
+ "pattern": "^\\d{6}(\\d{2})?$",
2280
+ "description": "The Bank Identification Number (BIN) is either the first 6 or 8 digits of a card number.\nIt identifies the issuing financial institution in a transaction, helping to route payments correctly.\n"
2281
+ },
2282
+ "last4": {
2283
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2284
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Last4",
2285
+ "type": "string",
2286
+ "pattern": "^\\d+$",
2287
+ "description": "The last four digits of the card number.",
2288
+ "minLength": 4,
2289
+ "maxLength": 4
2290
+ },
2291
+ "expirationDate": {
2292
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2293
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ExpirationDate",
2294
+ "type": "string",
2295
+ "pattern": "([0-9][0-9])(0[1-9]|1[0-2])",
2296
+ "format": "YYMM",
2297
+ "description": "Expiration date for the card and will be assumed to be the last millisecond of the month",
2298
+ "minLength": 4,
2299
+ "maxLength": 4
2300
+ },
2301
+ "encryptedCardNumber": {
2302
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2303
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardNumber",
2304
+ "type": "string",
2305
+ "pattern": "^\\d+$",
2306
+ "description": "The Primary Account Number (PAN) of the card.",
2307
+ "minLength": 15,
2308
+ "maxLength": 19
2309
+ },
2310
+ "serviceCode": {
2311
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2312
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ServiceCode",
2313
+ "type": "string",
2314
+ "pattern": "^\\d+$",
2315
+ "description": "Used to set general guidelines for how the card can be used, e.g. domestic only or international, online\nauthorizations only, etc.\n",
2316
+ "minLength": 3,
2317
+ "maxLength": 3
2318
+ },
2319
+ "pinOffset": {
2320
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2321
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PinOffset",
2322
+ "type": "string",
2323
+ "description": "Offset used to calculate the user-defined PIN.",
2324
+ "pattern": "^\\d+$",
2325
+ "minLength": 4,
2326
+ "maxLength": 12
2327
+ },
2328
+ "sequenceNumber": {
2329
+ "type": "integer",
2330
+ "description": "Used to differentiate cards with same card number and expiration date."
2331
+ },
2332
+ "state": {
2333
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2334
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/StateStatus",
2335
+ "description": "The state status for the card.",
2336
+ "type": "string",
2337
+ "enum": ["CURRENT", "REISSUED", "RETIRED", "FORCED"]
2338
+ },
2339
+ "active": {
2340
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2341
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ActiveStatus",
2342
+ "description": "The active/inactive status for the card",
2343
+ "type": "string",
2344
+ "enum": ["INACTIVE", "ACTIVE"]
2345
+ },
2346
+ "block": {
2347
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2348
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/BlockStatus",
2349
+ "type": "string",
2350
+ "description": "Whether the card is open or blocked for various reasons",
2351
+ "enum": ["OPEN", "BLOCKED LOST OR STOLEN", "BLOCKED NO FRAUD", "BLOCKED WITH FRAUD"]
2352
+ },
2353
+ "lock": {
2354
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2355
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/LockStatus",
2356
+ "type": "string",
2357
+ "description": "A cardholder initiated status. A locked card will fail authorization. Locked cards can be unlocked.\n\nA cardholder may choose to lock a card while temporarily misplaced.\n",
2358
+ "enum": ["LOCKED", "UNLOCKED"]
2359
+ },
2360
+ "capture": {
2361
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2362
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CaptureStatus",
2363
+ "type": "string",
2364
+ "description": "An issuer initiated status. If the value is CAPTURE, a merchant has the option to confiscate the card\nfrom the cardholder at the point of sale.\n",
2365
+ "enum": ["CAPTURE", "NO CAPTURE"]
2366
+ },
2367
+ "dataEncryptionKeyId": {
2368
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2369
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKeyId",
2370
+ "type": "string",
2371
+ "description": "Identifier for the encryption keys used to encrypt the Card object.\n",
2372
+ "format": "uuid"
2373
+ },
2374
+ "storageKeyId": {
2375
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2376
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/StorageKeyId",
2377
+ "type": "string",
2378
+ "description": "DEK's non-derived identifier to be used by Check Digit services only.\n"
2379
+ },
2380
+ "encryptedDataEncryptionKey": {
2381
+ "description": "Encrypted DEK matching the publicKeyHash sent in the request. Used to decrypt values in the Card object.\n",
2382
+ "type": "string"
2383
+ },
2384
+ "updatedOn": {
2385
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2386
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/UpdatedOn",
2387
+ "type": "string",
2388
+ "format": "date-time",
2389
+ "description": "The UTC datetime the resource was last updated."
2390
+ },
2391
+ "createdOn": {
2392
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2393
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CreatedOn",
2394
+ "type": "string",
2395
+ "format": "date-time",
2396
+ "description": "The UTC datetime the resource was created."
2397
+ }
2398
+ }
2399
+ }
2400
+ }
2401
+ }
2402
+ },
2403
+ "CardNumberRequest": {
2404
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2405
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardNumberRequest",
2406
+ "type": "object",
2407
+ "additionalProperties": false,
2408
+ "required": ["publicKey"],
2409
+ "properties": {
2410
+ "publicKey": {
2411
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2412
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PublicKey",
2413
+ "description": "An RSA generated public key in PEM format.",
2414
+ "type": "string",
2415
+ "example": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwm2sxmRdTF7ZIBA6+ngO\n8jOTCHmID0PpQB1q85+hrcLSfB1rWY9bzNNLabBo/ajDnA4Pcadq/x6gpg70qZcR\n9Wxm6TttKzBPZsxasGXgSTDqEi2KcYZgq1mL4qyxUvyIms7/llGy+W9b5huZaVcO\nxdT1tw/zctbOhb6S2t5vH+zkta/2ncUXjG7i8XdLsJ1qe4K1kYbA4KVkOMmAtw7O\n4STk0TZDD0YARdmrciorJjbIVt0Xj1CrYQ5QbDGrlfeXgrcZwX5f9wT2MnKlY5oZ\n5Wtb57oGtLkVf8g6vN/2jGtAmOmHK2hHwNd/+zUet5G/S5uwEli4RgMPP4pUoKgd\nGQIDAQAB\n-----END PUBLIC KEY-----\n"
2416
+ }
2417
+ }
2418
+ },
2419
+ "EncryptedCardNumber": {
2420
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2421
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/EncryptedCardNumber",
2422
+ "type": "object",
2423
+ "additionalProperties": false,
2424
+ "required": ["encryptedDataEncryptionKey", "encryptedCardNumber"],
2425
+ "properties": {
2426
+ "encryptedDataEncryptionKey": {
2427
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2428
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKey",
2429
+ "type": "string",
2430
+ "description": "AES generated encryption key used to encrypt sensitive data."
2431
+ },
2432
+ "encryptedCardNumber": {
2433
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2434
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CardNumber",
2435
+ "type": "string",
2436
+ "pattern": "^\\d+$",
2437
+ "description": "The Primary Account Number (PAN) of the card.",
2438
+ "minLength": 15,
2439
+ "maxLength": 19
2440
+ }
2441
+ }
2442
+ },
2443
+ "Error": {
2444
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2445
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Error",
2446
+ "type": "object",
2447
+ "additionalProperties": false,
2448
+ "description": "Server error message",
2449
+ "properties": {
2450
+ "message": {
2451
+ "type": "string"
2452
+ },
2453
+ "code": {
2454
+ "type": "string"
2455
+ }
2456
+ }
2457
+ },
2458
+ "ExpirationDate": {
2459
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2460
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ExpirationDate",
2461
+ "type": "string",
2462
+ "pattern": "([0-9][0-9])(0[1-9]|1[0-2])",
2463
+ "format": "YYMM",
2464
+ "description": "Expiration date for the card and will be assumed to be the last millisecond of the month",
2465
+ "minLength": 4,
2466
+ "maxLength": 4
2467
+ },
2468
+ "DataEncryptionKeyId": {
2469
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2470
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKeyId",
2471
+ "type": "string",
2472
+ "description": "Identifier for the encryption keys used to encrypt the Card object.\n",
2473
+ "format": "uuid"
2474
+ },
2475
+ "DataEncryptionKeyRequest": {
2476
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2477
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKeyRequest",
2478
+ "type": "object",
2479
+ "additionalProperties": false,
2480
+ "required": ["publicKeys"],
2481
+ "properties": {
2482
+ "publicKeys": {
2483
+ "type": "array",
2484
+ "minItems": 1,
2485
+ "description": "List of public keys in PEM format.\n\nAssociated private keys can be used to decrypt card data encrypted by Payment Card Service.\n",
2486
+ "items": {
2487
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2488
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PublicKey",
2489
+ "description": "An RSA generated public key in PEM format.",
2490
+ "type": "string",
2491
+ "example": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwm2sxmRdTF7ZIBA6+ngO\n8jOTCHmID0PpQB1q85+hrcLSfB1rWY9bzNNLabBo/ajDnA4Pcadq/x6gpg70qZcR\n9Wxm6TttKzBPZsxasGXgSTDqEi2KcYZgq1mL4qyxUvyIms7/llGy+W9b5huZaVcO\nxdT1tw/zctbOhb6S2t5vH+zkta/2ncUXjG7i8XdLsJ1qe4K1kYbA4KVkOMmAtw7O\n4STk0TZDD0YARdmrciorJjbIVt0Xj1CrYQ5QbDGrlfeXgrcZwX5f9wT2MnKlY5oZ\n5Wtb57oGtLkVf8g6vN/2jGtAmOmHK2hHwNd/+zUet5G/S5uwEli4RgMPP4pUoKgd\nGQIDAQAB\n-----END PUBLIC KEY-----\n"
2492
+ }
2493
+ }
2494
+ }
2495
+ },
2496
+ "DataEncryptionKey": {
2497
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2498
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKey",
2499
+ "type": "string",
2500
+ "description": "AES generated encryption key used to encrypt sensitive data."
2501
+ },
2502
+ "EncryptedDataEncryptionKey": {
2503
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2504
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/EncryptedDataEncryptionKey",
2505
+ "type": "object",
2506
+ "additionalProperties": false,
2507
+ "description": "An object that includes an encrypted data encryption key and a hashed version of the public key - using\n@checkdigit/hash - used to encrypt it.\n",
2508
+ "required": ["publicKeyHash", "encryptedDataEncryptionKey"],
2509
+ "properties": {
2510
+ "publicKeyHash": {
2511
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2512
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Hash",
2513
+ "type": "string",
2514
+ "format": "uuid",
2515
+ "example": "15a85f64-5717-4562-b3fc-2c963f66afa6",
2516
+ "description": "UUID derived using @checkdigit/hash."
2517
+ },
2518
+ "encryptedDataEncryptionKey": {
2519
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2520
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKey",
2521
+ "type": "string",
2522
+ "description": "AES generated encryption key used to encrypt sensitive data."
2523
+ }
2524
+ }
2525
+ },
2526
+ "EncryptedDataEncryptionKeys": {
2527
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2528
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/EncryptedDataEncryptionKeys",
2529
+ "type": "object",
2530
+ "description": "An object that contains a list of EncryptedDataEncryptionKey objects.\n",
2531
+ "required": ["encryptedDataEncryptionKeys", "createdOn"],
2532
+ "properties": {
2533
+ "createdOn": {
2534
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2535
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CreatedOn",
2536
+ "type": "string",
2537
+ "format": "date-time",
2538
+ "description": "The UTC datetime the resource was created."
2539
+ },
2540
+ "encryptedDataEncryptionKeys": {
2541
+ "type": "array",
2542
+ "items": {
2543
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2544
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/EncryptedDataEncryptionKey",
2545
+ "type": "object",
2546
+ "additionalProperties": false,
2547
+ "description": "An object that includes an encrypted data encryption key and a hashed version of the public key - using\n@checkdigit/hash - used to encrypt it.\n",
2548
+ "required": ["publicKeyHash", "encryptedDataEncryptionKey"],
2549
+ "properties": {
2550
+ "publicKeyHash": {
2551
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2552
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Hash",
2553
+ "type": "string",
2554
+ "format": "uuid",
2555
+ "example": "15a85f64-5717-4562-b3fc-2c963f66afa6",
2556
+ "description": "UUID derived using @checkdigit/hash."
2557
+ },
2558
+ "encryptedDataEncryptionKey": {
2559
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2560
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKey",
2561
+ "type": "string",
2562
+ "description": "AES generated encryption key used to encrypt sensitive data."
2563
+ }
2564
+ }
2565
+ }
2566
+ }
2567
+ }
2568
+ },
2569
+ "ActiveStatus": {
2570
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2571
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ActiveStatus",
2572
+ "description": "The active/inactive status for the card",
2573
+ "type": "string",
2574
+ "enum": ["INACTIVE", "ACTIVE"]
2575
+ },
2576
+ "BlockStatus": {
2577
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2578
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/BlockStatus",
2579
+ "type": "string",
2580
+ "description": "Whether the card is open or blocked for various reasons",
2581
+ "enum": ["OPEN", "BLOCKED LOST OR STOLEN", "BLOCKED NO FRAUD", "BLOCKED WITH FRAUD"]
2582
+ },
2583
+ "LockStatus": {
2584
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2585
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/LockStatus",
2586
+ "type": "string",
2587
+ "description": "A cardholder initiated status. A locked card will fail authorization. Locked cards can be unlocked.\n\nA cardholder may choose to lock a card while temporarily misplaced.\n",
2588
+ "enum": ["LOCKED", "UNLOCKED"]
2589
+ },
2590
+ "CaptureStatus": {
2591
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2592
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/CaptureStatus",
2593
+ "type": "string",
2594
+ "description": "An issuer initiated status. If the value is CAPTURE, a merchant has the option to confiscate the card\nfrom the cardholder at the point of sale.\n",
2595
+ "enum": ["CAPTURE", "NO CAPTURE"]
2596
+ },
2597
+ "StateStatus": {
2598
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2599
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/StateStatus",
2600
+ "description": "The state status for the card.",
2601
+ "type": "string",
2602
+ "enum": ["CURRENT", "REISSUED", "RETIRED", "FORCED"]
2603
+ },
2604
+ "Ping": {
2605
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2606
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Ping",
2607
+ "type": "object",
2608
+ "additionalProperties": false,
2609
+ "required": ["serverTime"],
2610
+ "properties": {
2611
+ "serverTime": {
2612
+ "type": "string",
2613
+ "format": "date-time",
2614
+ "description": "Current server time",
2615
+ "example": "2020-01-01T00:00:00.000Z"
2616
+ }
2617
+ }
2618
+ },
2619
+ "Hash": {
2620
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2621
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/Hash",
2622
+ "type": "string",
2623
+ "format": "uuid",
2624
+ "example": "15a85f64-5717-4562-b3fc-2c963f66afa6",
2625
+ "description": "UUID derived using @checkdigit/hash."
2626
+ },
2627
+ "ServiceCode": {
2628
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2629
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ServiceCode",
2630
+ "type": "string",
2631
+ "pattern": "^\\d+$",
2632
+ "description": "Used to set general guidelines for how the card can be used, e.g. domestic only or international, online\nauthorizations only, etc.\n",
2633
+ "minLength": 3,
2634
+ "maxLength": 3
2635
+ },
2636
+ "NewIssuedCardRequest": {
2637
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2638
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/NewIssuedCardRequest",
2639
+ "type": "object",
2640
+ "required": [
2641
+ "dataEncryptionKeyId",
2642
+ "cardNumberLength",
2643
+ "bin",
2644
+ "expirationDate",
2645
+ "serviceCode",
2646
+ "sequenceNumber",
2647
+ "state",
2648
+ "active",
2649
+ "block",
2650
+ "lock"
2651
+ ],
2652
+ "additionalProperties": false,
2653
+ "properties": {
2654
+ "dataEncryptionKeyId": {
2655
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2656
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKeyId",
2657
+ "type": "string",
2658
+ "description": "Identifier for the encryption keys used to encrypt the Card object.\n",
2659
+ "format": "uuid"
2660
+ },
2661
+ "cardNumberLength": {
2662
+ "type": "integer",
2663
+ "description": "Desired number of digits in the card number.",
2664
+ "minimum": 15,
2665
+ "maximum": 19
2666
+ },
2667
+ "bin": {
2668
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2669
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/BankIdentificationNumber",
2670
+ "type": "string",
2671
+ "pattern": "^\\d{6}(\\d{2})?$",
2672
+ "description": "The Bank Identification Number (BIN) is either the first 6 or 8 digits of a card number.\nIt identifies the issuing financial institution in a transaction, helping to route payments correctly.\n"
2673
+ },
2674
+ "expirationDate": {
2675
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2676
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ExpirationDate",
2677
+ "type": "string",
2678
+ "pattern": "([0-9][0-9])(0[1-9]|1[0-2])",
2679
+ "format": "YYMM",
2680
+ "description": "Expiration date for the card and will be assumed to be the last millisecond of the month",
2681
+ "minLength": 4,
2682
+ "maxLength": 4
2683
+ },
2684
+ "serviceCode": {
2685
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2686
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ServiceCode",
2687
+ "type": "string",
2688
+ "pattern": "^\\d+$",
2689
+ "description": "Used to set general guidelines for how the card can be used, e.g. domestic only or international, online\nauthorizations only, etc.\n",
2690
+ "minLength": 3,
2691
+ "maxLength": 3
2692
+ },
2693
+ "sequenceNumber": {
2694
+ "type": "integer",
2695
+ "description": "Used to differentiate issuing the same card and expiration date on multiple plastics.",
2696
+ "minimum": 0,
2697
+ "maximum": 10
2698
+ },
2699
+ "state": {
2700
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2701
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/StateStatus",
2702
+ "description": "The state status for the card.",
2703
+ "type": "string",
2704
+ "enum": ["CURRENT", "REISSUED", "RETIRED", "FORCED"]
2705
+ },
2706
+ "active": {
2707
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2708
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ActiveStatus",
2709
+ "description": "The active/inactive status for the card",
2710
+ "type": "string",
2711
+ "enum": ["INACTIVE", "ACTIVE"]
2712
+ },
2713
+ "block": {
2714
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2715
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/BlockStatus",
2716
+ "type": "string",
2717
+ "description": "Whether the card is open or blocked for various reasons",
2718
+ "enum": ["OPEN", "BLOCKED LOST OR STOLEN", "BLOCKED NO FRAUD", "BLOCKED WITH FRAUD"]
2719
+ },
2720
+ "lock": {
2721
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2722
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/LockStatus",
2723
+ "type": "string",
2724
+ "description": "A cardholder initiated status. A locked card will fail authorization. Locked cards can be unlocked.\n\nA cardholder may choose to lock a card while temporarily misplaced.\n",
2725
+ "enum": ["LOCKED", "UNLOCKED"]
2726
+ }
2727
+ }
2728
+ },
2729
+ "NewForcedCardRequest": {
2730
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2731
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/NewForcedCardRequest",
2732
+ "type": "object",
2733
+ "additionalProperties": false,
2734
+ "required": ["encryptedCardNumber", "encryptedDataEncryptionKey", "dataEncryptionKeyId", "expirationDate"],
2735
+ "properties": {
2736
+ "encryptedCardNumber": {
2737
+ "description": "The card number must be encrypted with an AES generated secret key, i.e. data encryption key (DEK). That DEK must be RSA encrypted with the PublicKey returned by this service's GET /public-key operation. The encrypted DEK must be included in this request object as the encryptedDataEncryptionKey.",
2738
+ "type": "string"
2739
+ },
2740
+ "encryptedDataEncryptionKey": {
2741
+ "description": "RSA encrypted data encryption key used to AES encrypt encryptedCardNumber",
2742
+ "type": "string"
2743
+ },
2744
+ "dataEncryptionKeyId": {
2745
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2746
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKeyId",
2747
+ "type": "string",
2748
+ "description": "Identifier for the encryption keys used to encrypt the Card object.\n",
2749
+ "format": "uuid"
2750
+ },
2751
+ "expirationDate": {
2752
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2753
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/ExpirationDate",
2754
+ "type": "string",
2755
+ "pattern": "([0-9][0-9])(0[1-9]|1[0-2])",
2756
+ "format": "YYMM",
2757
+ "description": "Expiration date for the card and will be assumed to be the last millisecond of the month",
2758
+ "minLength": 4,
2759
+ "maxLength": 4
2760
+ }
2761
+ }
2762
+ },
2763
+ "PublicKey": {
2764
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2765
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PublicKey",
2766
+ "description": "An RSA generated public key in PEM format.",
2767
+ "type": "string",
2768
+ "example": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwm2sxmRdTF7ZIBA6+ngO\n8jOTCHmID0PpQB1q85+hrcLSfB1rWY9bzNNLabBo/ajDnA4Pcadq/x6gpg70qZcR\n9Wxm6TttKzBPZsxasGXgSTDqEi2KcYZgq1mL4qyxUvyIms7/llGy+W9b5huZaVcO\nxdT1tw/zctbOhb6S2t5vH+zkta/2ncUXjG7i8XdLsJ1qe4K1kYbA4KVkOMmAtw7O\n4STk0TZDD0YARdmrciorJjbIVt0Xj1CrYQ5QbDGrlfeXgrcZwX5f9wT2MnKlY5oZ\n5Wtb57oGtLkVf8g6vN/2jGtAmOmHK2hHwNd/+zUet5G/S5uwEli4RgMPP4pUoKgd\nGQIDAQAB\n-----END PUBLIC KEY-----\n"
2769
+ },
2770
+ "PublicKeyResponse": {
2771
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2772
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PublicKeyResponse",
2773
+ "description": "This object contains the rsa generated public key for the Payment Card Service. This public key must be used\nwhen transmitting encrypted data to Payment Card Service APIs.\n",
2774
+ "type": "object",
2775
+ "required": ["publicKey"],
2776
+ "properties": {
2777
+ "publicKey": {
2778
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2779
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PublicKey",
2780
+ "description": "An RSA generated public key in PEM format.",
2781
+ "type": "string",
2782
+ "example": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwm2sxmRdTF7ZIBA6+ngO\n8jOTCHmID0PpQB1q85+hrcLSfB1rWY9bzNNLabBo/ajDnA4Pcadq/x6gpg70qZcR\n9Wxm6TttKzBPZsxasGXgSTDqEi2KcYZgq1mL4qyxUvyIms7/llGy+W9b5huZaVcO\nxdT1tw/zctbOhb6S2t5vH+zkta/2ncUXjG7i8XdLsJ1qe4K1kYbA4KVkOMmAtw7O\n4STk0TZDD0YARdmrciorJjbIVt0Xj1CrYQ5QbDGrlfeXgrcZwX5f9wT2MnKlY5oZ\n5Wtb57oGtLkVf8g6vN/2jGtAmOmHK2hHwNd/+zUet5G/S5uwEli4RgMPP4pUoKgd\nGQIDAQAB\n-----END PUBLIC KEY-----\n"
2783
+ }
2784
+ }
2785
+ },
2786
+ "PinKeyId": {
2787
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2788
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PinKeyId",
2789
+ "type": "string",
2790
+ "description": "PIN key identifier.",
2791
+ "format": "uuid"
2792
+ },
2793
+ "PinKeyResponse": {
2794
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2795
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PinKeyResponse",
2796
+ "description": "This object contains an rsa generated public key to be used when transmitting data for a PIN change. This key\nis only valid to be used for a single PIN change.\n",
2797
+ "type": "object",
2798
+ "required": ["publicKey"],
2799
+ "properties": {
2800
+ "publicKey": {
2801
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2802
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PublicKey",
2803
+ "description": "An RSA generated public key in PEM format.",
2804
+ "type": "string",
2805
+ "example": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwm2sxmRdTF7ZIBA6+ngO\n8jOTCHmID0PpQB1q85+hrcLSfB1rWY9bzNNLabBo/ajDnA4Pcadq/x6gpg70qZcR\n9Wxm6TttKzBPZsxasGXgSTDqEi2KcYZgq1mL4qyxUvyIms7/llGy+W9b5huZaVcO\nxdT1tw/zctbOhb6S2t5vH+zkta/2ncUXjG7i8XdLsJ1qe4K1kYbA4KVkOMmAtw7O\n4STk0TZDD0YARdmrciorJjbIVt0Xj1CrYQ5QbDGrlfeXgrcZwX5f9wT2MnKlY5oZ\n5Wtb57oGtLkVf8g6vN/2jGtAmOmHK2hHwNd/+zUet5G/S5uwEli4RgMPP4pUoKgd\nGQIDAQAB\n-----END PUBLIC KEY-----\n"
2806
+ }
2807
+ }
2808
+ },
2809
+ "EncryptedPin": {
2810
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2811
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/EncryptedPin",
2812
+ "type": "string",
2813
+ "description": "An AES encrypted PIN."
2814
+ },
2815
+ "PinRequest": {
2816
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2817
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/PinRequest",
2818
+ "type": "object",
2819
+ "additionalProperties": false,
2820
+ "required": ["encryptedDataEncryptionKey", "encryptedPin"],
2821
+ "properties": {
2822
+ "encryptedDataEncryptionKey": {
2823
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2824
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/DataEncryptionKey",
2825
+ "type": "string",
2826
+ "description": "AES generated encryption key used to encrypt sensitive data."
2827
+ },
2828
+ "encryptedPin": {
2829
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2830
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/EncryptedPin",
2831
+ "type": "string",
2832
+ "description": "An AES encrypted PIN."
2833
+ }
2834
+ }
2835
+ },
2836
+ "StorageKeyId": {
2837
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2838
+ "$id": "https://payment-card.checkdigit/payment-card/v3/schemas/definitions/StorageKeyId",
2839
+ "type": "string",
2840
+ "description": "DEK's non-derived identifier to be used by Check Digit services only.\n"
2841
+ }
2842
+ }
2843
+ }