Skip to content

Commit 796a3e1

Browse files
expose all elavon transaction data and modify access policy (#3419)
1 parent e003117 commit 796a3e1

File tree

4 files changed

+256
-0
lines changed

4 files changed

+256
-0
lines changed

warehouse/macros/create_row_access_policy.sql

+2
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ filter using (
8282

8383
{{ create_row_access_policy(
8484
principals = ['serviceAccount:[email protected]',
85+
'serviceAccount:metabase-payments-team@cal-itp-data-infra.iam.gserviceaccount.com',
8586
'serviceAccount:[email protected]',
8687
'serviceAccount:github-actions-services-accoun@cal-itp-data-infra.iam.gserviceaccount.com',
8788
@@ -156,6 +157,7 @@ filter using (
156157

157158
{{ create_row_access_policy(
158159
principals = ['serviceAccount:[email protected]',
160+
'serviceAccount:metabase-payments-team@cal-itp-data-infra.iam.gserviceaccount.com',
159161
'serviceAccount:[email protected]',
160162
'serviceAccount:github-actions-services-accoun@cal-itp-data-infra.iam.gserviceaccount.com',
161163

warehouse/models/staging/payments/elavon/_elavon.yml

+100
Original file line numberDiff line numberDiff line change
@@ -156,3 +156,103 @@ models:
156156
- name: ent_num
157157
- name: dt
158158
- name: execution_ts
159+
160+
- name: int_elavon__chargeback_transactions
161+
description: Chargeback-specific transactions processed by Elavon
162+
columns:
163+
- name: payment_reference
164+
- name: payment_date
165+
- name: account_number
166+
- name: routing_number
167+
- name: fund_amt
168+
- name: batch_reference
169+
- name: batch_type
170+
- name: customer_batch_reference
171+
- name: customer_name
172+
- name: merchant_number
173+
- name: external_mid
174+
- name: store_number
175+
- name: chain
176+
- name: batch_amt
177+
- name: amount
178+
- name: surchg_amount
179+
- name: convnce_amt
180+
- name: card_type
181+
- name: charge_type
182+
- name: charge_type_description
183+
- name: card_plan
184+
- name: card_no
185+
- name: chk_num
186+
- name: transaction_date
187+
- name: settlement_date
188+
- name: authorization_code
189+
- name: chargeback_control_no
190+
- name: roc_text
191+
- name: trn_aci
192+
- name: card_scheme_ref
193+
- name: trn_ref_num
194+
tests:
195+
- unique
196+
- name: settlement_method
197+
- name: currency_code
198+
- name: cb_acq_ref_id
199+
- name: chgbk_rsn_code
200+
- name: chgbk_rsn_desc
201+
- name: mer_ref
202+
- name: purch_id
203+
- name: cust_cod
204+
- name: trn_arn
205+
- name: term_id
206+
- name: ent_num
207+
- name: dt
208+
- name: execution_ts
209+
210+
- name: int_elavon__adjustment_transactions
211+
description: Adjustment-specific transactions processed by Elavon
212+
columns:
213+
- name: payment_reference
214+
- name: payment_date
215+
- name: account_number
216+
- name: routing_number
217+
- name: fund_amt
218+
- name: batch_reference
219+
- name: batch_type
220+
- name: customer_batch_reference
221+
- name: customer_name
222+
- name: merchant_number
223+
- name: external_mid
224+
- name: store_number
225+
- name: chain
226+
- name: batch_amt
227+
- name: amount
228+
- name: surchg_amount
229+
- name: convnce_amt
230+
- name: card_type
231+
- name: charge_type
232+
- name: charge_type_description
233+
- name: card_plan
234+
- name: card_no
235+
- name: chk_num
236+
- name: transaction_date
237+
- name: settlement_date
238+
- name: authorization_code
239+
- name: chargeback_control_no
240+
- name: roc_text
241+
- name: trn_aci
242+
- name: card_scheme_ref
243+
- name: trn_ref_num
244+
tests:
245+
- unique
246+
- name: settlement_method
247+
- name: currency_code
248+
- name: cb_acq_ref_id
249+
- name: chgbk_rsn_code
250+
- name: chgbk_rsn_desc
251+
- name: mer_ref
252+
- name: purch_id
253+
- name: cust_cod
254+
- name: trn_arn
255+
- name: term_id
256+
- name: ent_num
257+
- name: dt
258+
- name: execution_ts
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
{{ config(materialized='table') }}
2+
3+
WITH
4+
5+
adjustment_transactions AS (
6+
7+
SELECT * FROM {{ ref('stg_elavon__transactions') }}
8+
WHERE batch_type = 'A'
9+
10+
),
11+
12+
int_elavon__adjustment_transactions AS (
13+
14+
SELECT
15+
payment_reference,
16+
payment_date,
17+
account_number,
18+
routing_number,
19+
fund_amt,
20+
batch_reference,
21+
batch_type,
22+
customer_batch_reference,
23+
customer_name,
24+
merchant_number,
25+
external_mid,
26+
store_number,
27+
chain,
28+
batch_amt,
29+
amount,
30+
surchg_amount,
31+
convnce_amt,
32+
card_type,
33+
charge_type,
34+
charge_type_description,
35+
card_plan,
36+
card_no,
37+
chk_num,
38+
transaction_date,
39+
settlement_date,
40+
authorization_code,
41+
chargeback_control_no,
42+
roc_text,
43+
trn_aci,
44+
card_scheme_ref,
45+
trn_ref_num,
46+
settlement_method,
47+
currency_code,
48+
cb_acq_ref_id,
49+
chgbk_rsn_code,
50+
chgbk_rsn_desc,
51+
mer_ref,
52+
purch_id,
53+
cust_cod,
54+
trn_arn,
55+
term_id,
56+
ent_num,
57+
dt,
58+
execution_ts
59+
60+
FROM adjustment_transactions
61+
62+
)
63+
64+
SELECT * FROM int_elavon__adjustment_transactions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
{{ config(materialized='table') }}
2+
3+
WITH
4+
5+
chargeback_transactions AS (
6+
7+
SELECT * FROM {{ ref('stg_elavon__transactions') }}
8+
WHERE batch_type = 'C'
9+
10+
),
11+
12+
int_elavon__chargeback_transactions AS (
13+
14+
SELECT
15+
16+
payment_reference,
17+
payment_date,
18+
account_number,
19+
routing_number,
20+
fund_amt,
21+
batch_reference,
22+
batch_type,
23+
customer_batch_reference,
24+
customer_name,
25+
merchant_number,
26+
external_mid,
27+
store_number,
28+
chain,
29+
batch_amt,
30+
amount,
31+
surchg_amount,
32+
convnce_amt,
33+
card_type,
34+
charge_type,
35+
charge_type_description,
36+
card_plan,
37+
card_no,
38+
chk_num,
39+
transaction_date,
40+
settlement_date,
41+
authorization_code,
42+
chargeback_control_no,
43+
roc_text,
44+
trn_aci,
45+
card_scheme_ref,
46+
trn_ref_num,
47+
settlement_method,
48+
currency_code,
49+
cb_acq_ref_id,
50+
chgbk_rsn_code,
51+
chgbk_rsn_desc,
52+
mer_ref,
53+
purch_id,
54+
cust_cod,
55+
trn_arn,
56+
term_id,
57+
ent_num,
58+
dt,
59+
execution_ts
60+
61+
-- if we remove the need for a union between billing and deposit data downstream, these are the columns to keep
62+
-- (ie deposit-specific, always null columns are removed)
63+
-- payment_reference,
64+
-- payment_date,
65+
-- account_number,
66+
-- routing_number,
67+
-- fund_amt,
68+
-- batch_reference,
69+
-- batch_type,
70+
-- customer_name,
71+
-- merchant_number,
72+
-- external_mid,
73+
-- chain,
74+
-- batch_amt,
75+
-- amount,
76+
-- card_type,
77+
-- charge_type,
78+
-- charge_type_description,
79+
-- card_plan,
80+
-- settlement_method,
81+
-- currency_code,
82+
-- ent_num,
83+
-- dt,
84+
-- execution_ts
85+
86+
FROM chargeback_transactions
87+
88+
)
89+
90+
SELECT * FROM int_elavon__chargeback_transactions

0 commit comments

Comments
 (0)