-
Notifications
You must be signed in to change notification settings - Fork 0
/
charge_back.go
97 lines (72 loc) · 4.35 KB
/
charge_back.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package circlesdk
// ChargeBackHistoryType contains the type value for the charge back history.
type ChargeBackHistoryType string
const (
// ChargeBackHistoryType1stChargeBack = "1st Chargeback".
ChargeBackHistoryType1stChargeBack ChargeBackHistoryType = "1st Chargeback"
// ChargeBackHistoryType2ndChargeBack = "2nd Chargeback".
ChargeBackHistoryType2ndChargeBack ChargeBackHistoryType = "2nd Chargeback"
// ChargeBackHistoryTypeChargeBackReversal = "Chargeback Reversal".
ChargeBackHistoryTypeChargeBackReversal ChargeBackHistoryType = "Chargeback Reversal"
// ChargeBackHistoryTypeRepresentment = "Representment".
ChargeBackHistoryTypeRepresentment ChargeBackHistoryType = "Representment"
// ChargeBackHistoryTypeChargeBackSettlement = "Chargeback Settlement".
ChargeBackHistoryTypeChargeBackSettlement ChargeBackHistoryType = "Chargeback Settlement"
)
// ChargeBackHistory contains the data for one item of the chargeback object history property.
type ChargeBackHistory struct {
// Enumerated type of the chargeback history event. 1st Chargeback represents the first stage of the dispute
// procedure initiated by the cardholder’s issuing bank. 2nd Chargeback represents the second stage of the
// dispute procedure initiated by the cardholder’s issuing bank (This stage is MasterCard only).
// Chargeback Reversal represents when 1st Chargeback or 2nd Chargeback is withdrawn by the issuer.
// Representment represents the stage when merchants decided to dispute 1st Chargeback or 2nd Chargeback.
//Chargeback Settlement can imply one of the two: 1) If merchant or marketplace is taking the lost of the
// chargeback, money will be debit from the wallet during this stage.
//If merchant of marketplace successfully dispute the chargeback, money will be credit back to the wallet
// during this stage.
//1st Chargeback, 2nd Chargeback, Chargeback Reversal, Representment, Chargeback Settlement
Type ChargeBackHistoryType `json:"type,omitempty"`
// Chargeback amount object for the history
ChargeBackAmount *Amount `json:"chargeBackAmount,omitempty"`
// Fee object for the history
Fee *Amount `json:"fee,omitempty"`
// The reason the chargeback was created.
Description string `json:"description,omitempty"`
// Unique system generated identifier for the settlement related to the chargeback history.
SettlementID string `json:"settlementId,omitempty"`
// ISO-8601 UTC date/time format of the history creation date.
CreateDate string `json:"createDate,omitempty"`
}
// ChargeBackCategory contains the category value for the charge back.
type ChargeBackCategory string
const (
// ChargeBackCategoryCanceledRecurringPayment = "Canceled Recurring Payment".
ChargeBackCategoryCanceledRecurringPayment ChargeBackCategory = "Canceled Recurring Payment"
// ChargeBackCategoryCustomerDispute = "Customer Dispute".
ChargeBackCategoryCustomerDispute ChargeBackCategory = "Customer Dispute"
// ChargeBackCategoryFraudulent = "Fraudulent".
ChargeBackCategoryFraudulent ChargeBackCategory = "Fraudulent"
// ChargeBackCategoryGeneral = "General".
ChargeBackCategoryGeneral ChargeBackCategory = "General"
// ChargeBackCategoryProcessingError = "Processing Error".
ChargeBackCategoryProcessingError ChargeBackCategory = "Processing Error"
// ChargeBackCategoryNotDefined = "Not Defined".
ChargeBackCategoryNotDefined ChargeBackCategory = "Not Defined"
)
// ChargeBack is the object contain the chargeback data returned from the API.
type ChargeBack struct {
// Unique system generated identifier for the payment item.
ID string `json:"id,omitempty"`
// Unique system generated identifier for the payment that is associated to the chargeback item.
PaymentID string `json:"paymentId,omitempty"`
// Unique system generated identifier for the merchant.
MerchantID string `json:"merchantId,omitempty"`
// Reason code given by the card network for the chargeback item.
ReasonCode string `json:"reasonCode,omitempty"`
// Enumerated category of the chargeback status codes based on the chargeback status code.
// options: Canceled Recurring Payment, Customer Dispute, Fraudulent, General, Processing Error, Not Defined
Category ChargeBackCategory `json:"category,omitempty"`
// The chargeback item's history list will be sorted by create date descending:
// more recent chargeback statuses will be at the beginning of the list.
History []ChargeBackHistory `json:"history,omitempty"`
}