Issuing-Daten abfragen
Die in Sigma oder Data Pipeline dargestellten Issuing-Objekte umfassen Autorisierungen, Transaktionen, Karten und Karteninhaber/innen. Issuing-spezifische Tabellen finden Sie im Abschnitt „Issuing“ des Schemas.
Issuing-Daten für Ihre verbundenen Konten finden Sie in den Tabellen mit dem Präfix connected_account_
(beispielsweise connected_account_issuing_authorizations
). Weitere Informationen zur Verwendung von Connect mit Sigma oder Data Pipeline können dem Abschnitt Connect der Dokumentation entnommen werden.
Autorisierungen
Immer wenn für einen Kauf eine ausgestellte Karte verwendet wird, erstellt Stripe ein Authorization-Objekt. Jede Zeile in der Tabelle issuing_authorizations
liefert Daten zu diesem Objekt. Die gleichen Informationen lassen sich auch über die API oder das Stripe-Dashboard abrufen. Beachten Sie, dass das Feld request history (Anforderungsverlauf) derzeit nicht verfügbar ist. Jede über Ihr Konto erstellte Autorisierung steht in Sigma oder Data Pipeline zur Verfügung.
In der Spalte card_id
dieser Tabelle wird die ID der Karte gespeichert, die für den Kauf verwendet wurde. Zusätzliche Informationen zur Karte, mit der die Autorisierung ausgelöst wurde, können durch Zusammenführen dieser Spalte mit der Tabelle issuing_cards
angezeigt werden.
Um auf die Transaktionen im Zusammenhang mit einer bestimmten Autorisierung zuzugreifen, können Sie die Spalte authorization_id
in der Tabelle issuing_transactions
zusammenführen.
Die folgende Abfrage berechnet die Anzahl der Autorisierungen, gruppiert nach Genehmigungsstatus.
select date_trunc('month', created) as month, count(case when approved then 1 end) as num_approved_authorizations, count(*) as total_num_authorizations from issuing_authorizations where date_trunc('month', created) between date_trunc('month', date_add('month', -13, date(data_load_time))) and date_trunc('month', date_add('month', -1, date(data_load_time))) group by 1 order by 1 desc, 2 limit 2
Monat | genehmigt | num_authorizations |
---|---|---|
false | 506 | |
true | 10.045 |
Transaktionen
Ein Transaction-Objekt in Issuing stellt jegliche Verwendung einer ausgestellten Karte dar, die darin resultiert, dass Gelder auf Ihrem Stripe-Konto eingehen bzw. dieses verlassen (z. B. durch einen abgeschlossenen Kauf oder eine Rückerstattung). Die Tabelle issuing_transactions
speichert Informationen über diese Objekte. Sie können dieselben Informationen über die API oder auch aus dem Stripe-Dashboard abrufen.
Weitere Details zur Transaktion (z. B. Gebühren) finden Sie in der zugehörigen Saldo-Transaktion. Führen Sie dazu die Spalte balance_transaction_id
mit der Spalte id
der Tabelle balance_transactions
zusammen. Saldo-Transaktionen sind keine Issue-spezifischen Objekte. Mehr Informationen zur Arbeit mit Saldo-Transaktionen in Sigma oder Data Pipeline können dem Abschnitt Transaktionen der Dokumentation entnommen werden.
Über die Spalte authorization_id
können Sie auf das Authorization-Objekt der Transaktion zugreifen, indem Sie die Spalte id
der Tabelle issuing_authorizations
zusammenführen. Dadurch können Sie weitere Details zur Autorisierung der Transaktion erhalten. Die Spalte authorization_id
einer Issuing-Transaktion kann leer sein, wenn die Erfassung erzwungen war. In manchen Fällen ist sie auch bei Rückerstattungen leer.
Darüber hinaus können Sie über die Spalten card_id
und cardholder_id
auf Informationen zur Karte und zum/zur Karteninhaber/in der jeweiligen Transaktion zugreifen. Informationen zur Karte werden in der Tabelle issuing_cards
gespeichert, Informationen zum/zur Karteninhaber/in in der Tabelle issuing_cardholders
. Die Card- und Cardholder-Objekte können weitere Details zur Person liefern, die die Transaktion eingeleitet hat.
Die folgende Abfrage gibt Informationen zu den letzten drei Übererfassungen zurück. Sie führt die Tabelle issuing_authorizations
zusammen, um durch den Vergleich der Werte zweier Objekte zu bestimmen, ob bei der Transaktion übermäßig Zahlungen erfasst wurden.
select date_format(it.created, '%Y-%m-%d') as day, it.id, ia.amount as authorized_amount, -1 * it.amount as captured_amount from issuing_transactions it join issuing_authorizations ia on it.authorization_id=ia.id where it.type='capture' and -1 * it.amount > ia.amount --- This checks if this transaction was overcaptured order by day desc limit 3
Tag | ID | authorized_amount | captured_amount |
---|---|---|---|
ipi_ZsgqdIEeFjEVDr2 | 150 | 151 | |
ipi_84w46yRgkI8dePB | 0 | 1.000 | |
ipi_cEFmD3iDWW05LXv | 1.450 | 1.050 |
Einer der Vorteile der Verwendung von Sigma oder Data Pipeline mit Issuing ist die Möglichkeit, Daten zu aggregieren. Im folgenden Beispiel wird die Tabelle balance_transactions
zusammengeführt, um jede Art von Gebühr für Issuing-Transaktionen nach Monat zu aggregieren.
select date_trunc('month', it.created) as month, fd.type as fee_type, sum(fd.amount) as net_fees, sum(it.amount) as net_amount from issuing_transactions it inner join balance_transactions bt on bt.id=it.balance_transaction_id inner join balance_transaction_fee_details fd on fd.balance_transaction_id=bt.id group by 1,2 order by month desc, fee_type
Monat | fee_type | net_fees | net_amount |
---|---|---|---|
stripe-fee | 590 | 10.000 | |
stripe-fee | 59 | 1.000 | |
stripe-fee | 590 | 10.000 |
Karten
Die Tabelle issuing_cards
enthält Daten zu einem einzelnen Card-Objekt. Die gleichen Informationen lassen sich auch durch die API oder das Stripe-Dashboard abrufen. Das Feld spending controls ist derzeit nicht verfügbar.
Jeder ausgestellten Karte ist ein/e Karteninhaber/in zugeordnet. Die entsprechenden Informationen erhalten Sie, indem Sie die Spalte cardholder_id
in der Tabelle issuing_cardholders
zusammenführen.
Karteninhaber/innen
Daten zu Karteninhaber/innen werden in der Tabelle issuing_cardholders
gespeichert. Die gleichen Informationen lassen sich auch über die API oder mit dem Stripe-Dashboard abrufen. Das Feld spending controls (Ausgabenkontrollen) ist in Sigma derzeit nicht verfügbar.
Diese Tabelle kann mit anderen Tabellen zusammengeführt werden, um Informationen zu der Person zu erhalten, die eine Transaktion eingeleitet hat oder eine ausgestellte Karte besitzt.
Das folgende Beispiel ruft Informationen über die letzten drei erstellten aktiven Karteninhaber/innen ab.
select date_format(created, '%Y-%m-%d') as day, id, email, type from issuing_cardholders where status='active' limit 3
Tag | ID | Typ | |
---|---|---|---|
ich_5fevfxw1e58B8XT | j.smith@example.com | Einzelperson | |
ich_ztJ1h49wAzfO6fz | entity@example.com | business_entity | |
ich_XIxtEztVlohDLaS | j.doe@example.com | Einzelperson |
Metadaten
Die Metadaten zu jedem Issuing-Objekt werden in einer separaten Tabelle gespeichert. Die Bezeichnungen dieser Tabellen entsprechen der Bezeichnung der Tabelle des jeweiligen Objekts. Zusätzlich erhält die Bezeichnung die Endung _metadata
(beispielsweise issuing_transactions_metadata
). Die Metadatentabelle enthält einen Fremdschlüssel für das entsprechende Objekt in der Haupttabelle, mit dem Sie die beiden Tabellen zusammenführen können. Zum Beispiel verfügt jede Zeile in der Tabelle issuing_transactions_metadata
über die Spalte issuing_transaction_id
, die auf die Spalte id
einer Zeile in der Tabelle issuing_transactions
verweist.
Das folgende Beispiel erstellt ein Wörterbuch aus der Metadatentabelle der Tabelle issuing_transactions
. Anschließend wird das Wörterbuch genutzt, um den Wert des Metadatenschlüssels 'my_label'
für mehrere Transaktionen abzurufen.
with transactions_metadata_dictionary as ( select issuing_transaction_id, map_agg(key, value) metadata_dictionary from issuing_transactions_metadata group by 1 ) select date_format(it.created, '%Y-%m-%d') as day, it.id, it.amount, metadata_dictionary['my_label'] as my_label_value from issuing_transactions it left join transactions_metadata_dictionary on it.id = transactions_metadata_dictionary.issuing_transaction_id where element_at(metadata_dictionary, 'my_label') is not null order by day desc limit 3
Tag | ID | Betrag | my_label_value |
---|---|---|---|
ipi_3fK0t3GUunH5Onr | 2.000 | true | |
ipi_uymYx4ykxZMeKMc | 100 | true | |
ipi_qanzBRm5cG8gHVC | 10.000 | false |