Documentation ¶
Index ¶
- Constants
- type Address
- type AddressGW
- func (agw AddressGW) Create(customerID string, address AddressInput) (*Address, error)
- func (agw AddressGW) Delete(customerID, addressID string) error
- func (agw AddressGW) Find(customerID, addressID string) (*Address, error)
- func (agw AddressGW) Update(customerID, addressID string, address AddressInput) (*Address, error)
- type AddressInput
- type Braintree
- func (bt *Braintree) Address() AddressGW
- func (bt *Braintree) ClientToken() ClientTokenGW
- func (bt *Braintree) Customer() CustomerGW
- func (bt *Braintree) PaymentMethod() PaymentMethodGW
- func (bt *Braintree) Plan() PlanGW
- func (bt *Braintree) Subscription() SubscriptionGW
- func (bt *Braintree) Transaction() TransactionGW
- type ClientTokenGW
- type ClientTokenInput
- type ClientTokenOptions
- type CreditCard
- type CreditCardInput
- type CustomFields
- type Customer
- type CustomerGW
- type CustomerInput
- type GatewayError
- type PaymentMethod
- type PaymentMethodGW
- type PaymentMethodInput
- type PaymentMethodOptions
- type Paypal
- type Plan
- type PlanGW
- type ProcessorError
- type RiskData
- type Subscription
- type SubscriptionGW
- func (sgw SubscriptionGW) Cancel(id string) (*Subscription, error)
- func (sgw SubscriptionGW) Create(subscription SubscriptionInput) (*Subscription, error)
- func (sgw SubscriptionGW) Find(id string) (*Subscription, error)
- func (sgw SubscriptionGW) RetryCharge(id string) error
- func (sgw SubscriptionGW) Update(subscription SubscriptionInput) (*Subscription, error)
- type SubscriptionInput
- type Transaction
- type TransactionGW
- func (tgw TransactionGW) Create(transaction TransactionInput) (*Transaction, error)
- func (tgw TransactionGW) Find(id string) (*Transaction, error)
- func (tgw TransactionGW) Refund(id string) (*Transaction, error)
- func (tgw TransactionGW) Settle(id string) (*Transaction, error)
- func (tgw TransactionGW) Void(id string) (*Transaction, error)
- type TransactionInput
- type TransactionOptions
- type ValidationError
- type WebhookNotification
- type WebhookSubject
Constants ¶
const ( EnvironmentProduction = "production" EnvironmentSanbox = "sandbox" )
Braintree Environments
const ( CardTypeAmericanExpress = "American Express" CardTypeCarteBlanche = "Card Blanche" CardTypeChinaUnionPay = "China UnionPay" CardTypeDinersClub = "Diners Club" CardTypeDiscover = "Discover" CardTypeJCB = "JCB" CardTypeLaser = "Laser" CardTypeMaestro = "Maestro" CardTypeMasterCard = "MasterCard" CardTypeSolo = "Solo" CardTypeSwitch = "Switch" CardTypeVisa = "Visa" CardTypeUnknown = "Unknown" )
Card Types accepted by braintree.
const ( SubscriptionStatusActive = "Active" SubscriptionStatusCanceled = "Canceled" SubscriptionStatusExpired = "Expired" SubscriptionStatusPastDue = "Past Due" SubscriptionStatusPending = "Pending" )
Possible subscription statuses on braintree.
const ( PaymentInstrumentAndroidPayCard = "android_pay_card" PaymentInstrumentApplePayCard = "apple_pay_card" PaymentInstrumentCreditCard = "credit_card" PaymentInstrumentPaypalAccount = "paypal_account" PaymentInstrumentVenmoAccount = "venmo_account" )
Payment instrument types of a transaction.
const ( TransactionStatusAuthorisationExpired = "authorisation_expired" TransactionStatusAuthorized = "authorized" TransactionStatusAuthorizing = "authorizing" TransactionStatusSettlementPending = "settlement_pending" TransactionStatusSettlementConfirmed = "settlement_confirmed" TransactionStatusSettlementDeclined = "settlement_declined" TransactionStatusFailed = "failed" TransactionStatusGatewayRejected = "gateway_rejected" TransactionStatusProcessorDeclined = "processor_declined" TransactionStatusSettled = "settled" TransactionStatusSettling = "settling" TransactionStatusSubmittedForSettlement = "submitted_for_settlement" TransactionStatusVoided = "voided" )
Status types of a transaction.
const ( TransactionTypeSale = "sale" TransactionTypeCredit = "credit" )
Types of a transaction.
const ( WebhookAccountUpdaterDailyReport = "account_updater_daily_report" WebhookCheck = "check" WebhookDisbursement = "disbursement" WebhookDisbursementException = "disbursement_exception" WebhookDisputeLost = "dispute_lost" WebhookDisputeOpened = "dispute_opened" WebhookDisputeWon = "dispute_won" WebhookSubscriptionCanceled = "subscription_canceled" WebhookSubscriptionChargedSuccessfully = "subscription_charged_successfully" WebhookSubscriptionChargedUnsuccessfully = "subscription_charged_unsuccessfully" WebhookSubscriptionExpired = "subscription_expired" WebhookSubscriptionTrialEnded = "subscription_trial_ended" WebhookSubscriptionWentActive = "subscription_went_active" WebhookSubscriptionWentPastDue = "subscription_went_past_due" WebhookSubMerchantAccountApproved = "sub_merchant_account_approved" WebhookSubMerchantAccountDeclined = "sub_merchant_account_declined" WebhookPartnerMerchantAccountConnected = "partner_merchant_account_connected" WebhookPartnerMerchantAccountDisconnected = "partner_merchant_account_disconnected" WebhookPartnerMerchantAccountDeclined = "partner_merchant_account_declined" WebhookTransactionSettled = "transaction_settled" WebhookTransactionSettlementDeclined = "transaction_settlement_declined" WebhookTransactionDispursed = "transaction_dispursed" )
Kind of webhooks.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Address ¶
type Address struct { Company string `xml:"company"` CountryCodeAlpha2 string `xml:"country-code-alpha2"` CountryCodeAlpha3 string `xml:"country-code-alpha3"` CountryCodeNumeric string `xml:"country-code-numeric"` CountryName string `xml:"country-name"` CreatedAt time.Time `xml:"created-at"` CustomerID string `xml:"customer-id"` ExtendedAddress string `xml:"extended-address"` FirstName string `xml:"first-name"` ID string `xml:"id"` LastName string `xml:"last-name"` Locality string `xml:"locality"` PostalCode string `xml:"postal-code"` Region string `xml:"region"` StreetAddress string `xml:"street-address"` UpdatedAt time.Time `xml:"updated-at"` }
Address is a braintree address.
type AddressGW ¶
type AddressGW struct {
// contains filtered or unexported fields
}
AddressGW is an Address Gateway.
func (AddressGW) Create ¶
func (agw AddressGW) Create(customerID string, address AddressInput) (*Address, error)
Create an address on braintree.
type AddressInput ¶
type AddressInput struct { XMLName xml.Name Company string `xml:"company,omitempty"` CountryCodeAlpha2 string `xml:"country-code-alpha2,omitempty"` CountryCodeAlpha3 string `xml:"country-code-alpha3,omitempty"` CountryCodeNumeric string `xml:"country-code-numeric,omitempty"` CountryName string `xml:"country-name,omitempty"` ExtendedAddress string `xml:"extended-address,omitempty"` FirstName string `xml:"first-name,omitempty"` ID string `xml:"id,omitempty,omitempty"` LastName string `xml:"last-name,omitempty"` Locality string `xml:"locality,omitempty"` PostalCode string `xml:"postal-code,omitempty"` Region string `xml:"region,omitempty"` StreetAddress string `xml:"street-address,omitempty"` }
AddressInput is used to create or update an address on braintree.
type Braintree ¶
Braintree client
func New ¶
New returns a braintree client with credentials from env.
BRAINTREE_ENVIRONMENT has to be set to production or sandbox. BRAINTREE_MERCHANT_ID, BRAINTREE_PUBLIC_KEY and BRAINTREE_PRIVATE_KEY have to be set.
func (*Braintree) ClientToken ¶
func (bt *Braintree) ClientToken() ClientTokenGW
ClientToken provides the client token gateway for this braintree client.
func (*Braintree) Customer ¶
func (bt *Braintree) Customer() CustomerGW
Customer provides the customer gateway for this braintree client.
func (*Braintree) PaymentMethod ¶
func (bt *Braintree) PaymentMethod() PaymentMethodGW
PaymentMethod provides the payment method gateway for this braintree client.
func (*Braintree) Subscription ¶
func (bt *Braintree) Subscription() SubscriptionGW
Subscription provides the subscription gateway for this braintree client.
func (*Braintree) Transaction ¶
func (bt *Braintree) Transaction() TransactionGW
Transaction provides the transaction gateway for this braintree client.
type ClientTokenGW ¶
type ClientTokenGW struct {
// contains filtered or unexported fields
}
ClientTokenGW is a ClientToken Gateway.
func (ClientTokenGW) Generate ¶
func (ctgw ClientTokenGW) Generate(ct ClientTokenInput) (string, error)
Generate a client token.
Version is required.
type ClientTokenInput ¶
type ClientTokenInput struct { XMLName xml.Name CustomerID string `xml:"customer-id,omitempty"` MerchantAccountID string `xml:"merchant-account-id,omitempty"` Options *ClientTokenOptions `xml:"options,omitempty"` Version int `xml:"version"` }
ClientTokenInput is used to generate a client token.
type ClientTokenOptions ¶
type ClientTokenOptions struct { FailOnDuplicatePaymentMethod bool `xml:"fail-on-duplicate-payment-method,omitempty"` MakeDefault bool `xml:"make-default,omitempty"` VerifyCard bool `xml:"verify-card,omitempty"` }
ClientTokenOptions can be used as part of a ClientTokenInput.
type CreditCard ¶
type CreditCard struct { BillingAddress Address `xml:"billing-address"` BIN string `xml:"bin"` CardType string `xml:"card-type"` CardholderName string `xml:"cardholder-name"` Commercial string `xml:"commercial"` CountryOfIssuance string `xml:"country-of-issuance"` CreatedAt time.Time `xml:"created-at"` CustomerID string `xml:"customer-id"` CustomerLocation string `xml:"customer-location"` Debit string `xml:"debit"` Default bool `xml:"default"` DurbinRegulated string `xml:"durbin-regulated"` ExpirationDate string `xml:"expiration-date"` ExpirationMonth string `xml:"expiration-month"` ExpirationYear string `xml:"expiration-year"` Expired bool `xml:"expired"` Healthcare string `xml:"healthcare"` ImageURL string `xml:"image-url"` IssuingBank string `xml:"issuing-bank"` Last4 string `xml:"last-4"` MaskedNumber string `xml:"masked-number"` Payroll string `xml:"payroll"` Prepaid string `xml:"prepaid"` ProductID string `xml:"product-id"` Subscriptions []Subscription `xml:"subscriptions>subscription"` Token string `xml:"token"` UniqueNumberIdentifier string `xml:"unique-number-identifier"` UpdatedAt time.Time `xml:"updated-at"` }
A CreditCard is a braintree credit card.
type CreditCardInput ¶
type CreditCardInput struct { XMLName xml.Name BillingAddress *AddressInput `xml:"billing-address,omitempty"` BillingAddressID string `xml:"billing-address-id,omitempty"` CardholderName string `xml:"cardholder-name,omitempty"` CustomerID string `xml:"customerID,omitempty"` Options *PaymentMethodOptions `xml:"options,omitempty"` PaymentMethodNonce string `xml:"payment-method-nonce,omitempty"` RiskData *RiskData `xml:"risk-data,omitempty"` Token string `xml:"token,omitempty"` }
CreditCardInput is used to create or update a credit card on braintree.
type CustomFields ¶
CustomFields contains braintree custom fields as a map
func (CustomFields) MarshalXML ¶
func (cf CustomFields) MarshalXML(e *xml.Encoder, start xml.StartElement) error
MarshalXML encodes CustomFields into xml
func (*CustomFields) UnmarshalXML ¶
func (cf *CustomFields) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
UnmarshalXML decodes XML into CustomFields
type Customer ¶
type Customer struct { Addresses []Address `xml:"addresses>address"` // AndroidPayCards // ApplePayCards Company string `xml:"company"` CreatedAt time.Time `xml:"created-at"` CreditCards []CreditCard `xml:"credit-cards>credit-card"` CustomFields CustomFields `xml:"custom-fields"` Email string `xml:"email"` Fax string `xml:"fax"` FirstName string `xml:"first-name"` ID string `xml:"id"` LastName string `xml:"last-name"` PaypalAccounts []Paypal `xml:"paypal-accounts>paypal-account"` Phone string `xml:"phone"` UpdatedAt time.Time `xml:"updated-at"` Website string `xml:"website"` }
Customer is a braintree customer.
func (Customer) PaymentMethods ¶
func (c Customer) PaymentMethods() []PaymentMethod
PaymentMethods of a customer. Currently Credit Cards and Paypal accounts.
func (Customer) Subscriptions ¶
func (c Customer) Subscriptions() []Subscription
Subscriptions of a customer.
type CustomerGW ¶
type CustomerGW struct {
// contains filtered or unexported fields
}
CustomerGW is a Customer Gateway.
func (CustomerGW) Create ¶
func (cgw CustomerGW) Create(customer CustomerInput) (*Customer, error)
Create a Customer on braintree.
func (CustomerGW) Delete ¶
func (cgw CustomerGW) Delete(id string) error
Delete a Customer on braintree.
func (CustomerGW) Find ¶
func (cgw CustomerGW) Find(id string) (*Customer, error)
Find a Customer with a given id on braintree.
func (CustomerGW) Update ¶
func (cgw CustomerGW) Update(customer CustomerInput) (*Customer, error)
Update a Customer on braintree.
ID is required.
type CustomerInput ¶
type CustomerInput struct { XMLName xml.Name Company string `xml:"company,omitempty"` CreditCard *CreditCardInput `xml:"credit-card,omitempty"` CustomFields CustomFields `xml:"custom-fields,omitempty"` Email string `xml:"email,omitempty"` Fax string `xml:"fax,omitempty"` FirstName string `xml:"first-name,omitempty"` ID string `xml:"id,omitempty"` LastName string `xml:"last-name,omitempty"` PaymentMethodNonce string `xml:"payment-method-nonce,omitempty"` Phone string `xml:"phone,omitempty"` RiskData *RiskData `xml:"risk-data,omitempty"` Website string `xml:"website,omitempty"` }
CustomerInput is used to create or update a customer.
type GatewayError ¶
type GatewayError struct {
Message string
}
A GatewayError is returned from braintree if a payment is blocked by gateway settings of the braintree account.
func (*GatewayError) Error ¶
func (e *GatewayError) Error() string
type PaymentMethod ¶
type PaymentMethod interface {
// contains filtered or unexported methods
}
A PaymentMethod is currently a *CreditCard or *Paypal.
type PaymentMethodGW ¶
type PaymentMethodGW struct {
// contains filtered or unexported fields
}
PaymentMethodGW is a payment method gateway.
func (PaymentMethodGW) Create ¶
func (pgw PaymentMethodGW) Create(input PaymentMethodInput) (PaymentMethod, error)
Create a payment method on braintree.
func (PaymentMethodGW) Delete ¶
func (pgw PaymentMethodGW) Delete(token string) error
Delete a payment method on braintree.
func (PaymentMethodGW) Find ¶
func (pgw PaymentMethodGW) Find(token string) (PaymentMethod, error)
Find a payment method on braintree.
func (PaymentMethodGW) Update ¶
func (pgw PaymentMethodGW) Update(input PaymentMethodInput) (PaymentMethod, error)
Update a payment method on braintree.
Token is required.
type PaymentMethodInput ¶
type PaymentMethodInput struct { XMLName xml.Name BillingAddress *AddressInput `xml:"billing-address,omitempty"` BillingAddressID string `xml:"billing-address-id,omitempty"` CardholderName string `xml:"cardholder-name,omitempty"` CustomerID string `xml:"customer-id"` Options *PaymentMethodOptions `xml:"options,omitempty"` PaymentMethodNonce string `xml:"payment-method-nonce"` RiskData *RiskData `xml:"risk-data,omitempty"` Token string `xml:"token,omitempty"` }
PaymentMethodInput is used to create a payment method on braintree.
CustomerID and PaymentMethodNonce are required.
type PaymentMethodOptions ¶
type PaymentMethodOptions struct { FailOnDuplicatePaymentMethod bool `xml:"fail-on-duplicate-payment-method,omitempty"` MakeDefault bool `xml:"make-default,omitempty"` VerificationAmount string `xml:"verification-amount,omitempty"` VerificationMerchantID string `xml:"verification-merchant-id,omitempty"` VerifyCard bool `xml:"verify-card,omitempty"` }
PaymentMethodOptions can be used as part of a PaymentMethodInput.
type Paypal ¶
type Paypal struct { BillingAgreementID string `xml:"billing-agreement-id"` CreatedAt time.Time `xml:"created-at"` CustomerID string `xml:"customer-id"` Default bool `xml:"default"` Email string `xml:"email"` ImageURL string `xml:"image-url"` Subscriptions []Subscription `xml:"subscriptions>subscription"` Token string `xml:"token"` UpdatedAt time.Time `xml:"updated-at"` }
A Paypal account on braintree.
type Plan ¶
type Plan struct { // AddOns // BillingDayOfMonth int `xml:"billing-day-of-month"` BillingFrequency int `xml:"billing-frequency"` CreatedAt time.Time `xml:"created-at"` CurrencyISOCode string `xml:"currency-iso-code"` Description string `xml:"description"` // Discounts ID string `xml:"id"` Name string `xml:"name"` // NumberOfBillingCycles int `xml:"number-of-billing-cycles"` Price decimal.Decimal `xml:"price"` // TrialDuration int `xml:"trial-duration"` // TrialDurationUnit string `xml:"trial-duration_unit"` TrialPeriod bool `xml:"trial-period"` UpdatedAt time.Time `xml:"updated-at"` }
A Plan for a braintree subscription.
type PlanGW ¶
type PlanGW struct {
// contains filtered or unexported fields
}
PlanGW is a Plan Gateway.
type ProcessorError ¶
A ProcessorError is returned from braintree if a payment failed.
func (*ProcessorError) Error ¶
func (e *ProcessorError) Error() string
type RiskData ¶
type RiskData struct { CustomerBrowser string `xml:"customer-browser,omitempty"` CustomerIP string `xml:"customer-ip,omitempty"` }
RiskData can be used as part of some input structs.
type Subscription ¶
type Subscription struct { // AddOns Balance decimal.Decimal `xml:"balance"` BillingPeriodEndDate btdate.Date `xml:"billing-period-end-date"` BillingDayOfMonth int `xml:"billing-day-of-month"` BillingPeriodStartDate btdate.Date `xml:"billing-period-start-date"` CreatedAt time.Time `xml:"created-at"` CurrentBillingCycle int `xml:"current-billing-cycle"` DaysPastDue sql.NullInt64 `xml:"days-past-due"` // Descriptor // Discounts FailureCount int `xml:"failure-count"` ID string `xml:"id"` MerchantAccountID string `xml:"merchant-account-id"` NeverExpires bool `xml:"never-expires"` NextBillAmount decimal.Decimal `xml:"next-bill-amount"` NextBillingDate btdate.Date `xml:"next-billing-date"` NextBillingPeriodAmount decimal.Decimal `xml:"next-billing-period-amount"` NumberOfBillingCycles sql.NullInt64 `xml:"number-of-billing-cycles"` PaidThroughDate btdate.Date `xml:"paid-through-date"` PaymentMethodToken string `xml:"payment-method-token"` PlanID string `xml:"plan-id"` Price decimal.Decimal `xml:"price"` Status string `xml:"status"` // StatusHistory Transactions []Transaction `xml:"transactions>transaction"` TrialDuration sql.NullInt64 `xml:"trial-duration"` TrialDurationUnit sql.NullString `xml:"trial-duration-unit"` TrialPeriod bool `xml:"trial-period"` UpdatedAt time.Time `xml:"updated-at"` }
A Subscription on braintree.
type SubscriptionGW ¶
type SubscriptionGW struct {
// contains filtered or unexported fields
}
SubscriptionGW is a Subscription Gateway.
func (SubscriptionGW) Cancel ¶
func (sgw SubscriptionGW) Cancel(id string) (*Subscription, error)
Cancel a subscription on braintree.
func (SubscriptionGW) Create ¶
func (sgw SubscriptionGW) Create(subscription SubscriptionInput) (*Subscription, error)
Create a subscription on braintree.
One of PaymentMethodNonce or PaymentMethodToken is required. PlanID is required.
func (SubscriptionGW) Find ¶
func (sgw SubscriptionGW) Find(id string) (*Subscription, error)
Find a subscription with a given subscription id on braintree.
func (SubscriptionGW) RetryCharge ¶
func (sgw SubscriptionGW) RetryCharge(id string) error
RetryCharge will retry to charge a Past Due subscription.
func (SubscriptionGW) Update ¶
func (sgw SubscriptionGW) Update(subscription SubscriptionInput) (*Subscription, error)
Update a subscription on braintree.
ID is required.
type SubscriptionInput ¶
type SubscriptionInput struct { XMLName xml.Name // AddOns BillingDayOfMonth int `xml:"billing-day-of-month,omitempty"` // Descriptor // Discounts FirstBillingDate *btdate.Date `xml:"first-billing-date"` ID string `xml:"id,omitempty"` MerchantAccountID string `xml:"merchant-account-id,omitempty"` NeverExpires bool `xml:"never-expires,omitempty"` NumberOfBillingCycles int `xml:"number-of-billing-cycles,omitempty"` // Options PaymentMethodNonce string `xml:"payment-method-nonce,omitempty"` PaymentMethodToken string `xml:"payment-method-token,omitempty"` PlanID string `xml:"plan-id,omitempty"` Price *decimal.Decimal `xml:"price,omitempty"` TrialDuration int `xml:"trial-duration,omitempty"` TrialDurationUnit string `xml:"trial-duration-unit,omitempty"` TrialPeriod bool `xml:"trial-period,omitempty"` }
SubscriptionInput is used to create or update a subscription.
type Transaction ¶
type Transaction struct { // AddOns AdditionalProcessorResponse string `xml:"additional-processor-response"` Amount decimal.Decimal `xml:"amount"` // AndroidPayCard // ApplePayDetails // AVSErrorResponseCode // AVSPostalCodeResponseCode // AVSStreetAddressResponseCode BillingDetails Address `xml:"billing-details"` Channel string `xml:"channel"` CreatedAt time.Time `xml:"created-at"` // CreditCardDetails CurrencyISOCode string CustomFields CustomFields `xml:"custom-fields"` // CustomerDetails // CVVResponseCode // Descriptor // DisbursementDetails // Discounts // Disputes EscrowStatus string `xml:"escrow-status"` GatewayRejectionReason string `xml:"gateway-rejection-reason"` ID string `xml:"id"` MerchantAccountID string `xml:"merchant-account-id"` OrderID string `xml:"order-id"` PaymentInstrumentType string `xml:"payment-instrument-type"` // PaypalDetails PlanID string `xml:"plan-id"` // ProcessorAuthoriationCode ProcessorResponseCode string `xml:"processor-response-code"` ProcessorResponseText string `xml:"processor-response-text"` ProcessorSettlementResponseCode string `xml:"processor-settlement-response-code"` ProcessorSettlementResponseText string `xml:"processor-settlement-response-text"` PurchaseOrderNumber string `xml:"purchase-order-number"` // Recurring // RefundIDs RefundedTransactionID string `xml:"refunded-transaction-id"` // RiskData // ServiceFeeAmount` SettlementBatchID string `xml:"settlement-batch-id"` // ShippingDetails Status string `xml:"status"` StatusHistory []string `xml:"status-history"` // SubscriptionDetails SubscriptionID string `xml:"subscription-id"` // TaxAmount TaxExempt bool `xml:"tax-exempt"` // ThreeDSecureInfo Type string `xml:"type"` UpdatedAt time.Time `xml:"updated-at"` }
A Transaction on braintree.
type TransactionGW ¶
type TransactionGW struct {
// contains filtered or unexported fields
}
TransactionGW is a transaction gateway.
func (TransactionGW) Create ¶
func (tgw TransactionGW) Create(transaction TransactionInput) (*Transaction, error)
Create a transaction on braintree.
One of PaymentMethodNonce or PaymentMethodToken is required. Amount and Type are required.
func (TransactionGW) Find ¶
func (tgw TransactionGW) Find(id string) (*Transaction, error)
Find a transaction with a given transaction id on braintree.
func (TransactionGW) Refund ¶
func (tgw TransactionGW) Refund(id string) (*Transaction, error)
Refund a transaction on braintree after settlement.
func (TransactionGW) Settle ¶
func (tgw TransactionGW) Settle(id string) (*Transaction, error)
Settle a transaction on braintree.
This will only work in the sandbox environment.
func (TransactionGW) Void ¶
func (tgw TransactionGW) Void(id string) (*Transaction, error)
Void a transactionon braintree before settlement.
type TransactionInput ¶
type TransactionInput struct { XMLName xml.Name Amount decimal.Decimal `xml:"amount"` Billing *AddressInput `xml:"billing,omitempty"` BillingAddressID string `xml:"billing-address-id,omitempty"` Channel string `xml:"channel,omitempty"` CustomFields CustomFields `xml:"custom-fields,omitempty"` Customer *CustomerInput `xml:"customer,omitempty"` CustomerID string `xml:"customer-id,omitempty"` // Descriptor DeviceData string `xml:"device-date,omitempty"` DeviceSessionID string `xml:"device-session-id,omitempty"` MerchantAccountID string `xml:"merchant-account-id,omitempty"` Options *TransactionOptions `xml:"options,omitempty"` OrderID string `xml:"order-id,omitempty"` PaymentMethodNonce string `xml:"payment-method-nonce,omitempty"` PaymentMethodToken string `xml:"payment-method_token,omitempty"` PurchaseOrderNumber string `xml:"purchase-order-number,omitempty"` Recurring bool `xml:"recurring,omitempty"` // RiskData // ServiceFeeAmount Shipping *AddressInput `xml:"shipping,omitempty"` ShippingAddressID string `xml:"shipping-address-id,omitempty"` // TaxAmount TaxExempt bool `xml:"tax-exempt,omitempty"` // ThreeDSecurePassThru TransactionSource string `xml:"transaction-source,omitempty"` Type string `xml:"type,omitempty"` }
TransactionInput is used to do a sale.
type TransactionOptions ¶
type TransactionOptions struct { AddBillingAddressToPaymentMethod bool `xml:"add-billing-address-to-payment-method,omitempty"` HoldInEscrow bool `xml:"hold-in-escrow,omitempty"` // Paypal StoreInVault bool `xml:"store-in-vault,omitempty"` StoreInVaultOnSuccess bool `xml:"store-in-vault-on-success,omitempty"` SubmitForSettlement bool `xml:"submit-for-settlement,omitempty"` }
TransactionOptions are optional settings for creating a transaction.
type ValidationError ¶
type ValidationError struct { Attribute string `xml:"attribute"` Code int `xml:"code"` Message string `xml:"message"` }
A ValidationError is returned from braintree in response to an invalid api call.
func (*ValidationError) Error ¶
func (e *ValidationError) Error() string
type WebhookNotification ¶
type WebhookNotification struct { Kind string `xml:"kind"` Subject WebhookSubject `xml:"subject"` Timestamp time.Time `xml:"timestamp"` }
WebhookNotification is an automated notifications from braintree via webhook.
type WebhookSubject ¶
type WebhookSubject struct { Subscription *Subscription `xml:"subscription"` Transaction *Transaction `xml:"transaction"` }
WebhookSubject might change in the future. Handles only Subscriptions and Transactions for now.