1 PACKAGE iby_creditcard_pkg AUTHID CURRENT_USER AS
2 /*$Header: ibyccs.pls 120.33 2011/10/31 06:16:09 gmamidip ship $*/
3
4 -- Constant for credit card types
5 C_INSTRTYPE_CCARD CONSTANT VARCHAR2(20) := 'CREDITCARD';
6
7 -- Constant for purchase card types
8 C_INSTRTYPE_PCARD CONSTANT VARCHAR2(20) := 'PURCHASECARD';
9
10 -- Number masking options
11 G_MASK_CHARACTER CONSTANT VARCHAR2(1) := 'X';
12 G_DEF_UNMASK_LENGTH CONSTANT NUMBER := 4;
13
14
15 G_LKUP_PCARD_TYPE CONSTANT VARCHAR2(30) := 'IBY_PURCHASECARD_SUBTYPE';
16
17 -- Card validation errors
18 G_RC_INVALID_CCNUMBER CONSTANT VARCHAR2(30) := 'INVALID_CARD_NUMBER';
19 G_RC_INVALID_CCEXPIRY CONSTANT VARCHAR2(30) := 'INVALID_CARD_EXPIRY';
20 G_RC_INVALID_INSTR_TYPE CONSTANT VARCHAR2(30) := 'INVALID_INSTRUMENT_TYPE';
21 G_RC_INVALID_PCARD_TYPE CONSTANT VARCHAR2(30) := 'INVALID_PCARD_TYPE';
22 G_RC_INVALID_CARD_ISSUER CONSTANT VARCHAR2(30) := 'INVALID_CARD_ISSUER';
23 G_RC_INVALID_CARD_ID CONSTANT VARCHAR2(30) := 'INVALID_INSTRUMENT';
24 G_RC_INVALID_PARTY CONSTANT VARCHAR2(30) := 'INVALID_PARTY';
25 G_RC_INVALID_ADDRESS CONSTANT VARCHAR2(30) := 'INVALID_ADDRESS';
26
27 G_LKUP_INSTR_TYPE_CC CONSTANT VARCHAR2(30) := 'CREDITCARD';
28 G_LKUP_INSTR_TYPE_DC CONSTANT VARCHAR2(30) := 'DEBITCARD';
29 G_LKUP_INSTR_TYPE_PC CONSTANT VARCHAR2(30) := 'PAYMENTCARD';
30
31 -- Pad character used when encrypting credit card numbers
32 G_CCNUM_PAD CONSTANT VARCHAR2(1) := ' ';
33
34 -- Credit card billing site usage
35 G_CC_BILLING_SITE_USE CONSTANT VARCHAR2(30) := 'CC_BILLING';
36
37 -- Address Type Flags
38 G_PARTY_SITE_ID CONSTANT VARCHAR2(1) := 'S';
39 G_PARTY_SITE_USE_ID CONSTANT VARCHAR2(1) := 'U';
40
41
42
43 --
44 -- USE
45 -- Gets credit card mask settings
46 --
47 PROCEDURE Get_Mask_Settings
48 (x_mask_setting OUT NOCOPY iby_sys_security_options.credit_card_mask_setting%TYPE,
49 x_unmask_len OUT NOCOPY iby_sys_security_options.credit_card_unmask_len%TYPE
50 );
51
52 --
53 -- USE
54 -- Generates a masked credit card number based upon system mask
55 -- settings
56 --
57 FUNCTION Mask_Card_Number(p_cc_number IN iby_creditcard.ccnumber%TYPE)
58 RETURN iby_creditcard.masked_cc_number%TYPE;
59
60 FUNCTION Mask_Card_Number
61 (p_cc_number IN iby_creditcard.ccnumber%TYPE,
62 p_mask_option IN iby_creditcard.card_mask_setting%TYPE,
63 p_unmask_len IN iby_creditcard.card_unmask_length%TYPE
64 )
65 RETURN iby_creditcard.masked_cc_number%TYPE;
66
67 --
68 -- USE: Gets the credit card encryption mode setting
69 --
70 FUNCTION Get_CC_Encrypt_Mode
71 RETURN iby_sys_security_options.cc_encryption_mode%TYPE;
72
73 --
74 -- USE: Returns Y or N if the supplemental cardholder data
75 -- e.g., chname and expirydate, are encrypted.
76 --
77 FUNCTION Other_CC_Attribs_Encrypted
78 RETURN VARCHAR2;
79
80 --
81 -- USE: returns the site_use_id for the site. Creates
82 -- one if one doesn't exist.
83 --
84 FUNCTION Get_Billing_Site
85 (p_party_site_id IN hz_party_sites.party_site_id%TYPE,
86 p_party_id IN hz_parties.party_id%TYPE
87 )
88 RETURN hz_party_site_uses.party_site_use_id%TYPE;
89
90
91 PROCEDURE encrypt_chname
92 (p_sec_key IN iby_security_pkg.DES3_KEY_TYPE,
93 p_chname IN iby_creditcard.chname%TYPE,
94 p_segment_id IN NUMBER,
95 x_segment_id OUT NOCOPY NUMBER,
96 x_masked_chname OUT NOCOPY iby_creditcard.chname%TYPE,
97 x_mask_setting OUT NOCOPY iby_sys_security_options.credit_card_mask_setting%TYPE,
98 x_unmask_len OUT NOCOPY iby_sys_security_options.credit_card_unmask_len%TYPE
99 );
100
101 FUNCTION decrypt_chname
102 (p_sec_key IN iby_security_pkg.DES3_KEY_TYPE,
103 p_instrid IN iby_creditcard.instrid%TYPE
104 ) RETURN iby_creditcard.chname%TYPE;
105
106 PROCEDURE Create_Card
107 (p_commit IN VARCHAR2,
108 p_owner_id IN iby_creditcard.card_owner_id%TYPE,
109 p_holder_name IN iby_creditcard.chname%TYPE,
110 p_billing_address_id IN iby_creditcard.addressid%TYPE,
111 p_address_type IN VARCHAR2 := G_PARTY_SITE_ID,
112 p_billing_zip IN iby_creditcard.billing_addr_postal_code%TYPE,
113 p_billing_country IN iby_creditcard.bill_addr_territory_code%TYPE,
114 p_card_number IN iby_creditcard.ccnumber%TYPE,
115 p_expiry_date IN iby_creditcard.expirydate%TYPE,
116 p_instr_type IN iby_creditcard.instrument_type%TYPE,
117 p_pcard_flag IN iby_creditcard.purchasecard_flag%TYPE,
118 p_pcard_type IN iby_creditcard.purchasecard_subtype%TYPE,
119 p_issuer IN iby_creditcard.card_issuer_code%TYPE,
120 p_fi_name IN iby_creditcard.finame%TYPE,
121 p_single_use IN iby_creditcard.single_use_flag%TYPE,
122 p_info_only IN iby_creditcard.information_only_flag%TYPE,
123 p_purpose IN iby_creditcard.card_purpose%TYPE,
124 p_desc IN iby_creditcard.description%TYPE,
125 p_active_flag IN iby_creditcard.active_flag%TYPE,
126 p_inactive_date IN iby_creditcard.inactive_date%TYPE,
127 p_sys_sec_key IN iby_security_pkg.DES3_KEY_TYPE,
128 p_attribute_category IN iby_creditcard.attribute_category%TYPE,
129 p_attribute1 IN iby_creditcard.attribute1%TYPE,
130 p_attribute2 IN iby_creditcard.attribute2%TYPE,
134 p_attribute6 IN iby_creditcard.attribute6%TYPE,
131 p_attribute3 IN iby_creditcard.attribute3%TYPE,
132 p_attribute4 IN iby_creditcard.attribute4%TYPE,
133 p_attribute5 IN iby_creditcard.attribute5%TYPE,
135 p_attribute7 IN iby_creditcard.attribute7%TYPE,
136 p_attribute8 IN iby_creditcard.attribute8%TYPE,
137 p_attribute9 IN iby_creditcard.attribute9%TYPE,
138 p_attribute10 IN iby_creditcard.attribute10%TYPE,
139 p_attribute11 IN iby_creditcard.attribute11%TYPE,
140 p_attribute12 IN iby_creditcard.attribute12%TYPE,
141 p_attribute13 IN iby_creditcard.attribute13%TYPE,
142 p_attribute14 IN iby_creditcard.attribute14%TYPE,
143 p_attribute15 IN iby_creditcard.attribute15%TYPE,
144 p_attribute16 IN iby_creditcard.attribute16%TYPE,
145 p_attribute17 IN iby_creditcard.attribute17%TYPE,
146 p_attribute18 IN iby_creditcard.attribute18%TYPE,
147 p_attribute19 IN iby_creditcard.attribute19%TYPE,
148 p_attribute20 IN iby_creditcard.attribute20%TYPE,
149 p_attribute21 IN iby_creditcard.attribute21%TYPE,
150 p_attribute22 IN iby_creditcard.attribute22%TYPE,
151 p_attribute23 IN iby_creditcard.attribute23%TYPE,
152 p_attribute24 IN iby_creditcard.attribute24%TYPE,
153 p_attribute25 IN iby_creditcard.attribute25%TYPE,
154 p_attribute26 IN iby_creditcard.attribute26%TYPE,
155 p_attribute27 IN iby_creditcard.attribute27%TYPE,
156 p_attribute28 IN iby_creditcard.attribute28%TYPE,
157 p_attribute29 IN iby_creditcard.attribute29%TYPE,
158 p_attribute30 IN iby_creditcard.attribute30%TYPE,
159 x_result_code OUT NOCOPY VARCHAR2,
160 x_instr_id OUT NOCOPY iby_creditcard.instrid%TYPE,
161 p_allow_invalid_card IN VARCHAR2,
162 p_user_id IN NUMBER,
163 p_login_id IN NUMBER
164 );
165
166 PROCEDURE Update_Card
167 (p_commit IN VARCHAR2,
168 p_instr_id IN iby_creditcard.instrid%TYPE,
169 p_owner_id IN iby_creditcard.card_owner_id%TYPE,
170 p_holder_name IN iby_creditcard.chname%TYPE,
171 p_billing_address_id IN iby_creditcard.addressid%TYPE,
172 p_address_type IN VARCHAR2 := G_PARTY_SITE_ID,
173 p_billing_zip IN iby_creditcard.billing_addr_postal_code%TYPE,
174 p_billing_country IN iby_creditcard.bill_addr_territory_code%TYPE,
175 p_expiry_date IN iby_creditcard.expirydate%TYPE,
176 p_instr_type IN iby_creditcard.instrument_type%TYPE,
177 p_pcard_flag IN iby_creditcard.purchasecard_flag%TYPE,
178 p_pcard_type IN iby_creditcard.purchasecard_subtype%TYPE,
179 p_fi_name IN iby_creditcard.finame%TYPE,
180 p_single_use IN iby_creditcard.single_use_flag%TYPE,
181 p_info_only IN iby_creditcard.information_only_flag%TYPE,
182 p_purpose IN iby_creditcard.card_purpose%TYPE,
183 p_desc IN iby_creditcard.description%TYPE,
184 p_active_flag IN iby_creditcard.active_flag%TYPE,
185 p_inactive_date IN iby_creditcard.inactive_date%TYPE,
186 p_attribute_category IN iby_creditcard.attribute_category%TYPE,
187 p_attribute1 IN iby_creditcard.attribute1%TYPE,
188 p_attribute2 IN iby_creditcard.attribute2%TYPE,
189 p_attribute3 IN iby_creditcard.attribute3%TYPE,
190 p_attribute4 IN iby_creditcard.attribute4%TYPE,
191 p_attribute5 IN iby_creditcard.attribute5%TYPE,
192 p_attribute6 IN iby_creditcard.attribute6%TYPE,
193 p_attribute7 IN iby_creditcard.attribute7%TYPE,
194 p_attribute8 IN iby_creditcard.attribute8%TYPE,
195 p_attribute9 IN iby_creditcard.attribute9%TYPE,
196 p_attribute10 IN iby_creditcard.attribute10%TYPE,
197 p_attribute11 IN iby_creditcard.attribute11%TYPE,
198 p_attribute12 IN iby_creditcard.attribute12%TYPE,
199 p_attribute13 IN iby_creditcard.attribute13%TYPE,
200 p_attribute14 IN iby_creditcard.attribute14%TYPE,
201 p_attribute15 IN iby_creditcard.attribute15%TYPE,
202 p_attribute16 IN iby_creditcard.attribute16%TYPE,
203 p_attribute17 IN iby_creditcard.attribute17%TYPE,
204 p_attribute18 IN iby_creditcard.attribute18%TYPE,
205 p_attribute19 IN iby_creditcard.attribute19%TYPE,
206 p_attribute20 IN iby_creditcard.attribute20%TYPE,
207 p_attribute21 IN iby_creditcard.attribute21%TYPE,
208 p_attribute22 IN iby_creditcard.attribute22%TYPE,
209 p_attribute23 IN iby_creditcard.attribute23%TYPE,
210 p_attribute24 IN iby_creditcard.attribute24%TYPE,
211 p_attribute25 IN iby_creditcard.attribute25%TYPE,
212 p_attribute26 IN iby_creditcard.attribute26%TYPE,
213 p_attribute27 IN iby_creditcard.attribute27%TYPE,
214 p_attribute28 IN iby_creditcard.attribute28%TYPE,
215 p_attribute29 IN iby_creditcard.attribute29%TYPE,
216 p_attribute30 IN iby_creditcard.attribute30%TYPE,
217 x_result_code OUT NOCOPY VARCHAR2,
218 p_allow_invalid_card IN VARCHAR2,
219 p_issuer IN iby_creditcard.card_issuer_code%TYPE
220 );
221
222 PROCEDURE check_card_validity
223 (
224 p_instr_id IN iby_creditcard.instrid%TYPE,
225 x_issuer IN OUT NOCOPY iby_creditcard.card_issuer_code%TYPE,
226 x_invalid_flag OUT NOCOPY iby_creditcard.invalid_flag%TYPE,
227 x_invalidation_reason OUT NOCOPY iby_creditcard.invalidation_reason%TYPE
228 );
229
230
231 PROCEDURE Query_Card
232 (p_card_id IN iby_creditcard.instrid%TYPE,
233 p_sys_sec_key IN iby_security_pkg.DES3_KEY_TYPE,
234 x_owner_id OUT NOCOPY iby_creditcard.card_owner_id%TYPE,
235 x_holder_name OUT NOCOPY iby_creditcard.chname%TYPE,
239 x_billing_address3 OUT NOCOPY hz_locations.address3%TYPE,
236 x_billing_address_id OUT NOCOPY iby_creditcard.addressid%TYPE,
237 x_billing_address1 OUT NOCOPY hz_locations.address1%TYPE,
238 x_billing_address2 OUT NOCOPY hz_locations.address2%TYPE,
240 x_billing_city OUT NOCOPY hz_locations.city%TYPE,
241 x_billing_county OUT NOCOPY hz_locations.county%TYPE,
242 x_billing_state OUT NOCOPY hz_locations.state%TYPE,
243 x_billing_zip OUT NOCOPY hz_locations.postal_code%TYPE,
244 x_billing_country OUT NOCOPY hz_locations.country%TYPE,
245 x_card_number OUT NOCOPY iby_creditcard.ccnumber%TYPE,
246 x_expiry_date OUT NOCOPY iby_creditcard.expirydate%TYPE,
247 x_instr_type OUT NOCOPY iby_creditcard.instrument_type%TYPE,
248 x_pcard_flag OUT NOCOPY iby_creditcard.purchasecard_flag%TYPE,
249 x_pcard_type OUT NOCOPY iby_creditcard.purchasecard_subtype%TYPE,
250 x_issuer OUT NOCOPY iby_creditcard.card_issuer_code%TYPE,
251 x_fi_name OUT NOCOPY iby_creditcard.finame%TYPE,
252 x_single_use OUT NOCOPY iby_creditcard.single_use_flag%TYPE,
253 x_info_only OUT NOCOPY iby_creditcard.information_only_flag%TYPE,
254 x_purpose OUT NOCOPY iby_creditcard.card_purpose%TYPE,
255 x_desc OUT NOCOPY iby_creditcard.description%TYPE,
256 x_active_flag OUT NOCOPY iby_creditcard.active_flag%TYPE,
257 x_inactive_date OUT NOCOPY iby_creditcard.inactive_date%TYPE,
258 x_result_code OUT NOCOPY VARCHAR2
259 );
260
261
262 PROCEDURE Query_Card
263 (p_card_id IN iby_creditcard.instrid%TYPE,
264 p_sys_sec_key IN iby_security_pkg.DES3_KEY_TYPE,
265 x_owner_id OUT NOCOPY iby_creditcard.card_owner_id%TYPE,
266 x_holder_name OUT NOCOPY iby_creditcard.chname%TYPE,
267 x_billing_address_id OUT NOCOPY iby_creditcard.addressid%TYPE,
268 x_billing_address1 OUT NOCOPY hz_locations.address1%TYPE,
269 x_billing_address2 OUT NOCOPY hz_locations.address2%TYPE,
270 x_billing_address3 OUT NOCOPY hz_locations.address3%TYPE,
271 x_billing_city OUT NOCOPY hz_locations.city%TYPE,
272 x_billing_county OUT NOCOPY hz_locations.county%TYPE,
273 x_billing_state OUT NOCOPY hz_locations.state%TYPE,
274 x_billing_zip OUT NOCOPY hz_locations.postal_code%TYPE,
275 x_billing_country OUT NOCOPY hz_locations.country%TYPE,
276 x_card_number OUT NOCOPY iby_creditcard.ccnumber%TYPE,
277 x_expiry_date OUT NOCOPY iby_creditcard.expirydate%TYPE,
278 x_instr_type OUT NOCOPY iby_creditcard.instrument_type%TYPE,
279 x_pcard_flag OUT NOCOPY iby_creditcard.purchasecard_flag%TYPE,
280 x_pcard_type OUT NOCOPY iby_creditcard.purchasecard_subtype%TYPE,
281 x_issuer OUT NOCOPY iby_creditcard.card_issuer_code%TYPE,
282 x_fi_name OUT NOCOPY iby_creditcard.finame%TYPE,
283 x_single_use OUT NOCOPY iby_creditcard.single_use_flag%TYPE,
284 x_info_only OUT NOCOPY iby_creditcard.information_only_flag%TYPE,
285 x_purpose OUT NOCOPY iby_creditcard.card_purpose%TYPE,
286 x_desc OUT NOCOPY iby_creditcard.description%TYPE,
287 x_active_flag OUT NOCOPY iby_creditcard.active_flag%TYPE,
288 x_inactive_date OUT NOCOPY iby_creditcard.inactive_date%TYPE,
289 x_result_code OUT NOCOPY VARCHAR2,
290 x_province OUT NOCOPY hz_locations.country%TYPE
291 );
292
293
294 --
295 -- USE: Unciphers a the credit card number of a stored credit card
296 -- instrument
297 -- ARGS: i_instrid => the instrument id
298 -- i_sys_sec_key => the system security key
299 --
300 FUNCTION uncipher_ccnumber
301 (p_instrid IN iby_creditcard.instrid%TYPE,
302 p_sys_sec_key IN iby_security_pkg.DES3_KEY_TYPE
303 )
304 RETURN iby_creditcard.ccnumber%TYPE;
305
306 --
307 --
308 FUNCTION uncipher_ccnumber
309 (p_cc_number IN iby_creditcard.ccnumber%TYPE,
310 p_segment_cipher IN iby_security_segments.segment_cipher_text%TYPE,
311 p_encrypted IN iby_creditcard.encrypted%TYPE,
312 p_sys_key IN iby_security_pkg.DES3_KEY_TYPE,
313 p_subkey_cipher IN iby_sys_security_subkeys.subkey_cipher_text%TYPE,
314 p_card_len IN iby_cc_issuer_ranges.card_number_length%TYPE,
315 p_cc_prefix IN iby_cc_issuer_ranges.card_number_prefix%TYPE,
316 p_digit_check IN iby_creditcard_issuers_b.digit_check_flag%TYPE,
317 p_mask_setting IN iby_sys_security_options.credit_card_mask_setting%TYPE,
318 p_unmask_len IN iby_sys_security_options.credit_card_unmask_len%TYPE,
319 p_unmask_digits IN iby_creditcard.masked_cc_number%TYPE
320 )
321 RETURN iby_creditcard.ccnumber%TYPE;
322
323 --
324 -- USE: Wrapper of the above function for the UI.
325 -- In the UI the SQL is executed by the framework.
326 -- We can not catch the exception thrown from the function call.
327 -- It will cause unacceptable error in the UI.
328 -- In case of exceptions this wrapper function will
329 -- simply swallow it and return null.
330 -- The UI will display empty instrument number
331 -- for this case.
332 -- ARGS: i_instrid => the instrument id
333 -- i_sys_sec_key => the system security key
334 --
335 FUNCTION uncipher_ccnumber_ui_wrp
336 (i_instrid IN iby_creditcard.instrid%TYPE,
337 i_sys_sec_key IN iby_security_pkg.DES3_KEY_TYPE)
338 RETURN iby_creditcard.ccnumber%TYPE;
339
340 --
341 -- USE: Un-encrypts all registered credit card instruments, storing
342 -- data in obfuscated form
343 --
344 -- ARGS: p_commit => whether to commit the changes
345 -- p_sys_key => system security key; used to decrypt instruments
346 --
347 PROCEDURE Decrypt_Instruments
348 (p_commit IN VARCHAR2 := FND_API.G_TRUE,
352 --
349 p_sys_key IN iby_security_pkg.DES3_KEY_TYPE
350 );
351
353 -- USE: Encrypts all registered credit cards
354 --
355 -- ARGS: p_commit => whether to commit the changes
356 -- p_sys_key => system security key; used to encrypt instruments
357 --
358 PROCEDURE Encrypt_Instruments
359 (p_commit IN VARCHAR2 := FND_API.G_TRUE,
360 p_sys_key IN iby_security_pkg.DES3_KEY_TYPE
361 );
362
363 --
364 -- USE: Updates instrument masks according to new setting
365 --
366 -- ARGS: p_commit => whether to commit the changes
367 -- p_sys_key => system security key; used to encrypt instruments
368 --
369 PROCEDURE Remask_Instruments
370 (p_commit IN VARCHAR2 := FND_API.G_TRUE,
371 p_sys_key IN iby_security_pkg.DES3_KEY_TYPE
372 );
373
374 -- USE: Compresses a card number into the minimum clear text
375 -- representation
376 --
377 PROCEDURE Compress_CC_Number
378 (p_card_number IN iby_creditcard.ccnumber%TYPE,
379 p_prefix IN iby_cc_issuer_ranges.card_number_prefix%TYPE,
380 p_digit_check IN iby_creditcard_issuers_b.digit_check_flag%TYPE,
381 p_mask_setting IN iby_sys_security_options.credit_card_mask_setting%TYPE,
382 p_unmask_len IN iby_sys_security_options.credit_card_unmask_len%TYPE,
383 x_compress_num OUT NOCOPY iby_creditcard.ccnumber%TYPE,
384 x_unmask_digits OUT NOCOPY iby_creditcard.masked_cc_number%TYPE
385 );
386
387 -- USE: Uncompresses the credit card number based upon its known digits
388 -- (range prefix, check digits, unmasked digits) and the clear text
389 -- of its comprssed digits
390 -- ARGS: p_card_number => clear text of the compressed card digits
391 -- p_card_length => actual length of the credit card (uncompressed)
392 -- p_prefix => issuer range prefix
393 -- p_digit_check => 'Y' if the card has a check digit
394 -- p_mask_setting => masking option of the card number
395 -- p_unmask_len => number of digits exposed in the mask
396 -- p_unmask_digits => unmasked digits
397 --
398 FUNCTION Uncompress_CC_Number
399 (p_card_number IN iby_creditcard.ccnumber%TYPE,
400 p_card_length IN iby_creditcard.cc_number_length%TYPE,
401 p_prefix IN iby_cc_issuer_ranges.card_number_prefix%TYPE,
402 p_digit_check IN iby_creditcard_issuers_b.digit_check_flag%TYPE,
403 p_mask_setting IN iby_sys_security_options.credit_card_mask_setting%TYPE,
404 p_unmask_len IN iby_sys_security_options.credit_card_unmask_len%TYPE,
405 p_unmask_digits IN iby_creditcard.masked_cc_number%TYPE
406 )
407 RETURN iby_creditcard.ccnumber%TYPE;
408
409 --
410 -- USE: Gets the number of digits in a compressed credit card number
411 --
412 FUNCTION Get_Compressed_Len
413 (p_card_length IN iby_creditcard.cc_number_length%TYPE,
414 p_prefix IN iby_cc_issuer_ranges.card_number_prefix%TYPE,
415 p_digit_check IN iby_creditcard_issuers_b.digit_check_flag%TYPE,
416 p_mask_setting IN iby_sys_security_options.credit_card_mask_setting%TYPE,
417 p_unmask_len IN iby_sys_security_options.credit_card_unmask_len%TYPE
418 )
419 RETURN NUMBER;
420
421 --
422 -- USE: Encrypts the other sensitive card info and returns the
423 -- corresponding security segment_IDs
424 --
425 PROCEDURE Encrypt_Card_Info
426 (p_commit IN VARCHAR2 := FND_API.G_TRUE,
427 p_sys_security_key IN iby_security_pkg.DES3_KEY_TYPE,
428 p_expiry_date IN DATE,
429 p_expSegmentId IN NUMBER,
430 p_chname IN VARCHAR2,
431 p_chnameSegmentId IN NUMBER,
432 p_chnameMaskSetting IN VARCHAR2,
433 p_chnameUnmaskLen IN NUMBER,
434 x_exp_segment_id OUT NOCOPY NUMBER,
435 x_masked_chname OUT NOCOPY VARCHAR2,
436 x_chname_segment_id OUT NOCOPY NUMBER,
437 x_chnameMaskSetting OUT NOCOPY VARCHAR2,
438 x_chnameUnmaskLen OUT NOCOPY NUMBER,
439 x_err_code OUT NOCOPY VARCHAR2
440 );
441
442 --
443 -- USE: Updates the EXPIRED_FLAG for all the active credit cards
444 --
445 --
446 PROCEDURE Mark_Expired_Cards
447 (p_commit IN VARCHAR2 := FND_API.G_TRUE,
448 p_sys_sec_key IN iby_security_pkg.DES3_KEY_TYPE
449 );
450
451 --
452 -- USE: Upgrades the previously encrypted credit card records, by
453 -- encrypting the corresponding chname and expirydate
454 --
455 --
456 PROCEDURE Upgrade_Encrypted_Instruments
457 (p_commit IN VARCHAR2 := FND_API.G_TRUE,
458 p_sys_sec_key IN iby_security_pkg.DES3_KEY_TYPE
459 );
460
461
462 PROCEDURE Check_CC_Expiry
463 (p_instrid IN IBY_CREDITCARD.instrid%TYPE,
464 p_input_date IN DATE,
465 p_sys_sec_key IN iby_security_pkg.DES3_KEY_TYPE,
466 x_expired OUT NOCOPY VARCHAR2
467 );
468
469 PROCEDURE Upgrade_Risky_Instruments
470 (
471 p_commit IN VARCHAR2
472 );
473
474 --
475 -- Name: Purge_Sensitive_Data
476 -- Notes: This is the executable for the PA-DSS Purge Program(CP)
477 -- 'Purge Redundant PA-DSS Incidental Data'.
478 -- Purges the data from across products to make
479 -- the application compliant with PADSS.
480 --
481 PROCEDURE Purge_Sensitive_Data
482 (x_errbuf OUT NOCOPY VARCHAR2,
483 x_retcode OUT NOCOPY VARCHAR2,
484 x_batch_size IN NUMBER,
485 x_num_workers IN NUMBER
486 );
487
488 END iby_creditcard_pkg;