PayPal-Go-SDK: github.com/logpacker/PayPal-Go-SDK Index | Examples | Files

package paypal

import "github.com/logpacker/PayPal-Go-SDK"

Package paypal provides a wrapper to PayPal API (https://developer.paypal.com/webapps/developer/docs/api/). The first thing you do is to create a Client (you can select API base URL using paypal contants).

c, err := paypal.NewClient("clientID", "secretID", paypal.APIBaseSandBox)

Then you can get an access token from PayPal:

accessToken, err := c.GetAccessToken()

After you have an access token you can call built-in functions to get data from PayPal. paypal will assign all responses to go structures.

Code:

// Initialize client
c, err := paypal.NewClient("clientID", "secretID", paypal.APIBaseSandBox)
if err != nil {
    panic(err)
}

// Retrieve access token
_, err = c.GetAccessToken()
if err != nil {
    panic(err)
}

Index

Examples

Package Files

authorization.go billing.go client.go const.go doc.go filter.go identity.go order.go patch.go payout.go products.go sale.go subscription.go subscription_plan.go transaction_search.go types.go vault.go webhooks.go webprofile.go

Constants

const (
    ProductTypePhysical ProductType = "PHYSICAL"
    ProductTypeDigital  ProductType = "DIGITAL"
    ProductTypeService  ProductType = "SERVICE"

    ProductCategorySoftware                                  ProductCategory = "SOFTWARE"
    ProductCategorySoftwareComputerAndDataProcessingServices ProductCategory = "COMPUTER_AND_DATA_PROCESSING_SERVICES"
    ProductCategorySoftwareDigitalGames                      ProductCategory = "DIGITAL_GAMES"
    ProductCategorySoftwareGameSoftware                      ProductCategory = "GAME_SOFTWARE"
    ProductCategorySoftwareGames                             ProductCategory = "GAMES"
    ProductCategorySoftwareGeneral                           ProductCategory = "GENERAL"
    ProductCategorySoftwareGraphicAndCommercialDesign        ProductCategory = "GRAPHIC_AND_COMMERCIAL_DESIGN"
    ProductCategorySoftwareOemSoftware                       ProductCategory = "OEM_SOFTWARE"
    ProductCategorySoftwareOnlineGaming                      ProductCategory = "ONLINE_GAMING"
    ProductCategorySoftwareOnlineGamingCurrency              ProductCategory = "ONLINE_GAMING_CURRENCY"
    ProductCategorySoftwareOnlineServices                    ProductCategory = "ONLINE_SERVICES"
    ProductCategorySoftwareOther                             ProductCategory = "OTHER"
    ProductCategorySoftwareServices                          ProductCategory = "SERVICES"
)
const (
    // APIBaseSandBox points to the sandbox (for testing) version of the API
    APIBaseSandBox = "https://api.sandbox.paypal.com"

    // APIBaseLive points to the live version of the API
    APIBaseLive = "https://api.paypal.com"

    // RequestNewTokenBeforeExpiresIn is used by SendWithAuth and try to get new Token when it's about to expire
    RequestNewTokenBeforeExpiresIn = time.Duration(60) * time.Second
)
const (
    NoShippingDisplay      uint = 0
    NoShippingHide         uint = 1
    NoShippingBuyerAccount uint = 2
)

Possible values for `no_shipping` in InputFields

https://developer.paypal.com/docs/api/payment-experience/#definition-input_fields

const (
    AddrOverrideFromFile uint = 0
    AddrOverrideFromCall uint = 1
)

Possible values for `address_override` in InputFields

https://developer.paypal.com/docs/api/payment-experience/#definition-input_fields

const (
    LandingPageTypeBilling string = "Billing"
    LandingPageTypeLogin   string = "Login"
)

Possible values for `landing_page_type` in FlowConfig

https://developer.paypal.com/docs/api/payment-experience/#definition-flow_config

const (
    AllowedPaymentUnrestricted         string = "UNRESTRICTED"
    AllowedPaymentInstantFundingSource string = "INSTANT_FUNDING_SOURCE"
    AllowedPaymentImmediatePay         string = "IMMEDIATE_PAY"
)

Possible value for `allowed_payment_method` in PaymentOptions

https://developer.paypal.com/docs/api/payments/#definition-payment_options

const (
    OrderIntentCapture   string = "CAPTURE"
    OrderIntentAuthorize string = "AUTHORIZE"
)

Possible value for `intent` in CreateOrder

https://developer.paypal.com/docs/api/orders/v2/#orders_create

const (
    OrderStatusCreated   string = "CREATED"
    OrderStatusSaved     string = "SAVED"
    OrderStatusApproved  string = "APPROVED"
    OrderStatusVoided    string = "VOIDED"
    OrderStatusCompleted string = "COMPLETED"
)

Possible value for `status` in GetOrder

https://developer.paypal.com/docs/api/orders/v2/#orders-get-response

const (
    ItemCategoryDigitalGood  string = "DIGITAL_GOODS"
    ItemCategoryPhysicalGood string = "PHYSICAL_GOODS"
)

Possible values for `category` in Item

https://developer.paypal.com/docs/api/orders/v2/#definition-item

const (
    EventPaymentCaptureCompleted       string = "PAYMENT.CAPTURE.COMPLETED"
    EventPaymentCaptureDenied          string = "PAYMENT.CAPTURE.DENIED"
    EventPaymentCaptureRefunded        string = "PAYMENT.CAPTURE.REFUNDED"
    EventMerchantOnboardingCompleted   string = "MERCHANT.ONBOARDING.COMPLETED"
    EventMerchantPartnerConsentRevoked string = "MERCHANT.PARTNER-CONSENT.REVOKED"
)
const (
    OperationAPIIntegration   string = "API_INTEGRATION"
    ProductExpressCheckout    string = "EXPRESS_CHECKOUT"
    IntegrationMethodPayPal   string = "PAYPAL"
    IntegrationTypeThirdParty string = "THIRD_PARTY"
    ConsentShareData          string = "SHARE_DATA_CONSENT"
)
const (
    FeaturePayment               string = "PAYMENT"
    FeatureRefund                string = "REFUND"
    FeatureFuturePayment         string = "FUTURE_PAYMENT"
    FeatureDirectPayment         string = "DIRECT_PAYMENT"
    FeaturePartnerFee            string = "PARTNER_FEE"
    FeatureDelayFunds            string = "DELAY_FUNDS_DISBURSEMENT"
    FeatureReadSellerDispute     string = "READ_SELLER_DISPUTE"
    FeatureUpdateSellerDispute   string = "UPDATE_SELLER_DISPUTE"
    FeatureDisputeReadBuyer      string = "DISPUTE_READ_BUYER"
    FeatureUpdateCustomerDispute string = "UPDATE_CUSTOMER_DISPUTES"
)
const (
    PaypalRecipientWallet string = "PAYPAL"
    VenmoRecipientWallet  string = "VENMO"
)

https://developer.paypal.com/docs/api/payments.payouts-batch/v1/?mark=recipient_wallet#definition-recipient_wallet

const (
    LinkRelSelf      string = "self"
    LinkRelActionURL string = "action_url"
)
const (
    AncorTypeApplication string = "APPLICATION"
    AncorTypeAccount     string = "ACCOUNT"
)

type Address Uses

type Address struct {
    Line1       string `json:"line1"`
    Line2       string `json:"line2,omitempty"`
    City        string `json:"city"`
    CountryCode string `json:"country_code"`
    PostalCode  string `json:"postal_code,omitempty"`
    State       string `json:"state,omitempty"`
    Phone       string `json:"phone,omitempty"`
}

Address struct

type AgreementDetails Uses

type AgreementDetails struct {
    OutstandingBalance AmountPayout `json:"outstanding_balance"`
    CyclesRemaining    int          `json:"cycles_remaining,string"`
    CyclesCompleted    int          `json:"cycles_completed,string"`
    NextBillingDate    time.Time    `json:"next_billing_date"`
    LastPaymentDate    time.Time    `json:"last_payment_date"`
    LastPaymentAmount  AmountPayout `json:"last_payment_amount"`
    FinalPaymentDate   time.Time    `json:"final_payment_date"`
    FailedPaymentCount int          `json:"failed_payment_count,string"`
}

AgreementDetails struct

type Amount Uses

type Amount struct {
    Currency string  `json:"currency"`
    Total    string  `json:"total"`
    Details  Details `json:"details,omitempty"`
}

Amount struct

type AmountPayout Uses

type AmountPayout struct {
    Currency string `json:"currency"`
    Value    string `json:"value"`
}

AmountPayout struct

type AmountWithBreakdown Uses

type AmountWithBreakdown struct {
    GrossAmount    Money `json:"gross_amount"`
    FeeAmount      Money `json:"fee_amount"`
    ShippingAmount Money `json:"shipping_amount"`
    TaxAmount      Money `json:"tax_amount"`
    NetAmount      Money `json:"net_amount"`
}

Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#definition-amount_with_breakdown

type ApplicationContext Uses

type ApplicationContext struct {
    BrandName          string             `json:"brand_name,omitempty"`
    Locale             string             `json:"locale,omitempty"`
    ShippingPreference ShippingPreference `json:"shipping_preference,omitempty"`
    UserAction         UserAction         `json:"user_action,omitempty"`
    //LandingPage        string `json:"landing_page,omitempty"` // not found in documentation
    ReturnURL string `json:"return_url,omitempty"`
    CancelURL string `json:"cancel_url,omitempty"`
}

ApplicationContext struct Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#definition-application_context

type Authorization Uses

type Authorization struct {
    ID               string                `json:"id,omitempty"`
    CustomID         string                `json:"custom_id,omitempty"`
    InvoiceID        string                `json:"invoice_id,omitempty"`
    Status           string                `json:"status,omitempty"`
    StatusDetails    *CaptureStatusDetails `json:"status_details,omitempty"`
    Amount           *PurchaseUnitAmount   `json:"amount,omitempty"`
    SellerProtection *SellerProtection     `json:"seller_protection,omitempty"`
    CreateTime       *time.Time            `json:"create_time,omitempty"`
    UpdateTime       *time.Time            `json:"update_time,omitempty"`
    ExpirationTime   *time.Time            `json:"expiration_time,omitempty"`
    Links            []Link                `json:"links,omitempty"`
}

Authorization struct

type AuthorizeOrderRequest Uses

type AuthorizeOrderRequest struct {
    PaymentSource      *PaymentSource     `json:"payment_source,omitempty"`
    ApplicationContext ApplicationContext `json:"application_context,omitempty"`
}

AuthorizeOrderRequest - https://developer.paypal.com/docs/api/orders/v2/#orders_authorize

type AuthorizeOrderResponse Uses

type AuthorizeOrderResponse struct {
    CreateTime    *time.Time             `json:"create_time,omitempty"`
    UpdateTime    *time.Time             `json:"update_time,omitempty"`
    ID            string                 `json:"id,omitempty"`
    Status        string                 `json:"status,omitempty"`
    Intent        string                 `json:"intent,omitempty"`
    PurchaseUnits []PurchaseUnitRequest  `json:"purchase_units,omitempty"`
    Payer         *PayerWithNameAndPhone `json:"payer,omitempty"`
}

AuthorizeOrderResponse .

type BatchHeader Uses

type BatchHeader struct {
    Amount            *AmountPayout      `json:"amount,omitempty"`
    Fees              *AmountPayout      `json:"fees,omitempty"`
    PayoutBatchID     string             `json:"payout_batch_id,omitempty"`
    BatchStatus       string             `json:"batch_status,omitempty"`
    TimeCreated       *time.Time         `json:"time_created,omitempty"`
    TimeCompleted     *time.Time         `json:"time_completed,omitempty"`
    SenderBatchHeader *SenderBatchHeader `json:"sender_batch_header,omitempty"`
}

BatchHeader struct

type BillingAgreement Uses

type BillingAgreement struct {
    Name                        string               `json:"name,omitempty"`
    Description                 string               `json:"description,omitempty"`
    StartDate                   JSONTime             `json:"start_date,omitempty"`
    Plan                        BillingPlan          `json:"plan,omitempty"`
    Payer                       Payer                `json:"payer,omitempty"`
    ShippingAddress             *ShippingAddress     `json:"shipping_address,omitempty"`
    OverrideMerchantPreferences *MerchantPreferences `json:"override_merchant_preferences,omitempty"`
}

BillingAgreement struct

type BillingCycle Uses

type BillingCycle struct {
    PricingScheme PricingScheme `json:"pricing_scheme"` // The active pricing scheme for this billing cycle. A free trial billing cycle does not require a pricing scheme.
    Frequency     Frequency     `json:"frequency"`      // The frequency details for this billing cycle.
    TenureType    TenureType    `json:"tenure_type"`    // The tenure type of the billing cycle. In case of a plan having trial cycle, only 2 trial cycles are allowed per plan. The possible values are:
    Sequence      int           `json:"sequence"`       // The order in which this cycle is to run among other billing cycles. For example, a trial billing cycle has a sequence of 1 while a regular billing cycle has a sequence of 2, so that trial cycle runs before the regular cycle.
    TotalCycles   int           `json:"total_cycles"`   // The number of times this billing cycle gets executed. Trial billing cycles can only be executed a finite number of times (value between 1 and 999 for total_cycles). Regular billing cycles can be executed infinite times (value of 0 for total_cycles) or a finite number of times (value between 1 and 999 for total_cycles).
}

Doc https://developer.paypal.com/docs/api/subscriptions/v1/#definition-billing_cycle

type BillingInfo Uses

type BillingInfo struct {
    OutstandingBalance  AmountPayout      `json:"outstanding_balance,omitempty"`
    CycleExecutions     []CycleExecutions `json:"cycle_executions,omitempty"`
    LastPayment         LastPayment       `json:"last_payment,omitempty"`
    NextBillingTime     time.Time         `json:"next_billing_time,omitempty"`
    FailedPaymentsCount int               `json:"failed_payments_count,omitempty"`
}

BillingInfo struct

type BillingPlan Uses

type BillingPlan struct {
    ID                  string               `json:"id,omitempty"`
    Name                string               `json:"name,omitempty"`
    Description         string               `json:"description,omitempty"`
    Type                string               `json:"type,omitempty"`
    PaymentDefinitions  []PaymentDefinition  `json:"payment_definitions,omitempty"`
    MerchantPreferences *MerchantPreferences `json:"merchant_preferences,omitempty"`
}

BillingPlan struct

type BillingPlanListParams Uses

type BillingPlanListParams struct {
    ListParams
    Status string `json:"status,omitempty"` //Allowed values: CREATED, ACTIVE, INACTIVE, ALL.
}

BillingPlanListParams struct

type BillingPlanListResp Uses

type BillingPlanListResp struct {
    SharedListResponse
    Plans []BillingPlan `json:"plans,omitempty"`
}

BillingPlanListResp struct

type BillingPlanStatus Uses

type BillingPlanStatus string
const (
    BillingPlanStatusActive BillingPlanStatus = "ACTIVE"
)

type Capture Uses

type Capture struct {
    Amount         *Amount    `json:"amount,omitempty"`
    IsFinalCapture bool       `json:"is_final_capture"`
    CreateTime     *time.Time `json:"create_time,omitempty"`
    UpdateTime     *time.Time `json:"update_time,omitempty"`
    State          string     `json:"state,omitempty"`
    ParentPayment  string     `json:"parent_payment,omitempty"`
    ID             string     `json:"id,omitempty"`
    Links          []Link     `json:"links,omitempty"`
}

Capture struct

type CaptureAmount Uses

type CaptureAmount struct {
    ID                        string                     `json:"id,omitempty"`
    CustomID                  string                     `json:"custom_id,omitempty"`
    Amount                    *PurchaseUnitAmount        `json:"amount,omitempty"`
    SellerReceivableBreakdown *SellerReceivableBreakdown `json:"seller_receivable_breakdown,omitempty"`
}

CaptureAmount struct

type CaptureOrderRequest Uses

type CaptureOrderRequest struct {
    PaymentSource *PaymentSource `json:"payment_source"`
}

CaptureOrderRequest - https://developer.paypal.com/docs/api/orders/v2/#orders_capture

type CaptureOrderResponse Uses

type CaptureOrderResponse struct {
    ID            string                 `json:"id,omitempty"`
    Status        string                 `json:"status,omitempty"`
    Payer         *PayerWithNameAndPhone `json:"payer,omitempty"`
    PurchaseUnits []CapturedPurchaseUnit `json:"purchase_units,omitempty"`
}

CaptureOrderResponse is the response for capture order

type CaptureReqeust Uses

type CaptureReqeust struct {
    Note        string      `json:"note"`
    CaptureType CaptureType `json:"capture_type"`
    Amount      Money       `json:"amount"`
}

type CaptureSellerBreakdown Uses

type CaptureSellerBreakdown struct {
    GrossAmount         PurchaseUnitAmount  `json:"gross_amount"`
    PayPalFee           PurchaseUnitAmount  `json:"paypal_fee"`
    NetAmount           PurchaseUnitAmount  `json:"net_amount"`
    TotalRefundedAmount *PurchaseUnitAmount `json:"total_refunded_amount,omitempty"`
}

type CaptureStatusDetails Uses

type CaptureStatusDetails struct {
    Reason string `json:"reason,omitempty"`
}

https://developer.paypal.com/docs/api/payments/v2/#definition-capture_status_details

type CaptureType Uses

type CaptureType string
const (
    CaptureTypeOutstandingBalance CaptureType = "OUTSTANDING_BALANCE"
)

type CapturedPayments Uses

type CapturedPayments struct {
    Captures []CaptureAmount `json:"captures,omitempty"`
}

CapturedPayments has the amounts for a captured order

type CapturedPurchaseItem Uses

type CapturedPurchaseItem struct {
    Quantity    string `json:"quantity"`
    Name        string `json:"name"`
    SKU         string `json:"sku,omitempty"`
    Description string `json:"description,omitempty"`
}

CapturedPurchaseItem are items for a captured order

type CapturedPurchaseUnit Uses

type CapturedPurchaseUnit struct {
    Items       []CapturedPurchaseItem       `json:"items,omitempty"`
    ReferenceID string                       `json:"reference_id"`
    Shipping    CapturedPurchaseUnitShipping `json:"shipping,omitempty"`
    Payments    *CapturedPayments            `json:"payments,omitempty"`
}

CapturedPurchaseUnit are purchase units for a captured order

type CapturedPurchaseUnitShipping Uses

type CapturedPurchaseUnitShipping struct {
    Address ShippingDetailAddressPortable `json:"address,omitempty"`
}

type CardBillingAddress Uses

type CardBillingAddress struct {
    AddressLine1 string `json:"address_line_1"`
    AddressLine2 string `json:"address_line_2"`
    AdminArea2   string `json:"admin_area_2"`
    AdminArea1   string `json:"admin_area_1"`
    PostalCode   string `json:"postal_code"`
    CountryCode  string `json:"country_code"`
}

CardBillingAddress structure

type ChargeModel Uses

type ChargeModel struct {
    Type   string       `json:"type,omitempty"`
    Amount AmountPayout `json:"amount,omitempty"`
}

ChargeModel struct

type Client Uses

type Client struct {
    sync.Mutex
    Client   *http.Client
    ClientID string
    Secret   string
    APIBase  string
    Log      io.Writer // If user set log file name all requests will be logged there
    Token    *TokenResponse
    // contains filtered or unexported fields
}

Client represents a Paypal REST API Client

func NewClient Uses

func NewClient(clientID string, secret string, APIBase string) (*Client, error)

NewClient returns new Client struct APIBase is a base API URL, for testing you can use paypal.APIBaseSandBox

func (*Client) ActivatePlan Uses

func (c *Client) ActivatePlan(planID string) error

ActivatePlan activates a billing plan By default, a new plan is not activated Endpoint: PATCH /v1/payments/billing-plans/

func (*Client) ActivateSubscription Uses

func (c *Client) ActivateSubscription(subscriptionId, activateReason string) error

Activates the subscription. Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_activate Endpoint: POST /v1/billing/subscriptions/{id}/activate

func (*Client) ActivateSubscriptionPlan Uses

func (c *Client) ActivateSubscriptionPlan(planId string) error

Activates a plan Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#plans_activate Endpoint: POST /v1/billing/plans/{id}/activate

func (*Client) AuthorizeOrder Uses

func (c *Client) AuthorizeOrder(orderID string, authorizeOrderRequest AuthorizeOrderRequest) (*Authorization, error)

AuthorizeOrder - https://developer.paypal.com/docs/api/orders/v2/#orders_authorize Endpoint: POST /v2/checkout/orders/ID/authorize

func (*Client) CancelPayoutItem Uses

func (c *Client) CancelPayoutItem(payoutItemID string) (*PayoutItemResponse, error)

CancelPayoutItem cancels an unclaimed Payout Item. If no one claims the unclaimed item within 30 days, the funds are automatically returned to the sender. Use this call to cancel the unclaimed item before the automatic 30-day refund. Endpoint: POST /v1/payments/payouts-item/ID/cancel

func (*Client) CancelSubscription Uses

func (c *Client) CancelSubscription(subscriptionId, cancelReason string) error

Cancels the subscription. Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_cancel Endpoint: POST /v1/billing/subscriptions/{id}/cancel

func (*Client) CaptureAuthorization Uses

func (c *Client) CaptureAuthorization(authID string, paymentCaptureRequest *PaymentCaptureRequest) (*PaymentCaptureResponse, error)

CaptureAuthorization captures and process an existing authorization. To use this method, the original payment must have Intent set to "authorize" Endpoint: POST /v2/payments/authorizations/ID/capture

func (*Client) CaptureAuthorizationWithPaypalRequestId Uses

func (c *Client) CaptureAuthorizationWithPaypalRequestId(
    authID string,
    paymentCaptureRequest *PaymentCaptureRequest,
    requestID string,
) (*PaymentCaptureResponse, error)

CaptureAuthorization captures and process an existing authorization with idempotency. To use this method, the original payment must have Intent set to "authorize" Endpoint: POST /v2/payments/authorizations/ID/capture

func (*Client) CaptureOrder Uses

func (c *Client) CaptureOrder(orderID string, captureOrderRequest CaptureOrderRequest) (*CaptureOrderResponse, error)

CaptureOrder - https://developer.paypal.com/docs/api/orders/v2/#orders_capture Endpoint: POST /v2/checkout/orders/ID/capture

func (*Client) CaptureOrderWithPaypalRequestId Uses

func (c *Client) CaptureOrderWithPaypalRequestId(
    orderID string,
    captureOrderRequest CaptureOrderRequest,
    requestID string,
) (*CaptureOrderResponse, error)

CaptureOrder with idempotency - https://developer.paypal.com/docs/api/orders/v2/#orders_capture Endpoint: POST /v2/checkout/orders/ID/capture https://developer.paypal.com/docs/api/reference/api-requests/#http-request-headers

func (*Client) CaptureSubscription Uses

func (c *Client) CaptureSubscription(subscriptionId string, request CaptureReqeust) (*SubscriptionCaptureResponse, error)

Captures an authorized payment from the subscriber on the subscription. Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_capture Endpoint: POST /v1/billing/subscriptions/{id}/capture

func (*Client) CreateBillingAgreement Uses

func (c *Client) CreateBillingAgreement(a BillingAgreement) (*CreateAgreementResp, error)

CreateBillingAgreement creates an agreement for specified plan Endpoint: POST /v1/payments/billing-agreements

func (*Client) CreateBillingPlan Uses

func (c *Client) CreateBillingPlan(plan BillingPlan) (*CreateBillingResp, error)

CreateBillingPlan creates a billing plan in Paypal Endpoint: POST /v1/payments/billing-plans

func (*Client) CreateOrder Uses

func (c *Client) CreateOrder(intent string, purchaseUnits []PurchaseUnitRequest, payer *CreateOrderPayer, appContext *ApplicationContext) (*Order, error)

CreateOrder - Use this call to create an order Endpoint: POST /v2/checkout/orders

func (*Client) CreateProduct Uses

func (c *Client) CreateProduct(product Product) (*CreateProductResponse, error)

CreateProduct creates a product Doc: https://developer.paypal.com/docs/api/catalog-products/v1/#products_create Endpoint: POST /v1/catalogs/products

func (*Client) CreateSinglePayout Uses

func (c *Client) CreateSinglePayout(p Payout) (*PayoutResponse, error)

CreateSinglePayout submits a payout with an asynchronous API call, which immediately returns the results of a PayPal payment. For email payout set RecipientType: "EMAIL" and receiver email into Receiver Endpoint: POST /v1/payments/payouts

func (*Client) CreateSubscription Uses

func (c *Client) CreateSubscription(newSubscription SubscriptionBase) (*SubscriptionDetailResp, error)

CreateSubscriptionPlan creates a subscriptionPlan Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_create Endpoint: POST /v1/billing/subscriptions

func (*Client) CreateSubscriptionPlan Uses

func (c *Client) CreateSubscriptionPlan(newPlan SubscriptionPlan) (*CreateSubscriptionPlanResponse, error)

CreateSubscriptionPlan creates a subscriptionPlan Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#plans_create Endpoint: POST /v1/billing/plans

func (*Client) CreateWebProfile Uses

func (c *Client) CreateWebProfile(wp WebProfile) (*WebProfile, error)

CreateWebProfile creates a new web experience profile in Paypal

Allows for the customisation of the payment experience

Endpoint: POST /v1/payment-experience/web-profiles

func (*Client) CreateWebhook Uses

func (c *Client) CreateWebhook(createWebhookRequest *CreateWebhookRequest) (*Webhook, error)

CreateWebhook - Subscribes your webhook listener to events. Endpoint: POST /v1/notifications/webhooks

func (*Client) DeactivateSubscriptionPlans Uses

func (c *Client) DeactivateSubscriptionPlans(planId string) error

Deactivates a plan Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#plans_deactivate Endpoint: POST /v1/billing/plans/{id}/deactivate

func (*Client) DeleteCreditCard Uses

func (c *Client) DeleteCreditCard(id string) error

DeleteCreditCard func Endpoint: DELETE /v1/vault/credit-cards/credit_card_id

func (*Client) DeleteWebProfile Uses

func (c *Client) DeleteWebProfile(profileID string) error

DeleteWebProfile deletes a web experience profile from Paypal with given id

Endpoint: DELETE /v1/payment-experience/web-profiles

func (*Client) DeleteWebhook Uses

func (c *Client) DeleteWebhook(webhookID string) error

DeleteWebhook - Deletes a webhook, by ID. Endpoint: DELETE /v1/notifications/webhooks/ID

func (*Client) ExecuteApprovedAgreement Uses

func (c *Client) ExecuteApprovedAgreement(token string) (*ExecuteAgreementResponse, error)

ExecuteApprovedAgreement - Use this call to execute (complete) a PayPal agreement that has been approved by the payer. Endpoint: POST /v1/payments/billing-agreements/token/agreement-execute

func (*Client) GetAccessToken Uses

func (c *Client) GetAccessToken() (*TokenResponse, error)

GetAccessToken returns struct of TokenResponse No need to call SetAccessToken to apply new access token for current Client Endpoint: POST /v1/oauth2/token

func (*Client) GetAuthorization Uses

func (c *Client) GetAuthorization(authID string) (*Authorization, error)

GetAuthorization returns an authorization by ID Endpoint: GET /v2/payments/authorizations/ID

func (*Client) GetCreditCard Uses

func (c *Client) GetCreditCard(id string) (*CreditCard, error)

GetCreditCard func Endpoint: GET /v1/vault/credit-cards/credit_card_id

func (*Client) GetCreditCards Uses

func (c *Client) GetCreditCards(ccf *CreditCardsFilter) (*CreditCards, error)

GetCreditCards func Endpoint: GET /v1/vault/credit-cards

func (*Client) GetOrder Uses

func (c *Client) GetOrder(orderID string) (*Order, error)

GetOrder retrieves order by ID Endpoint: GET /v2/checkout/orders/ID

func (*Client) GetPayout Uses

func (c *Client) GetPayout(payoutBatchID string) (*PayoutResponse, error)

GetPayout shows the latest status of a batch payout along with the transaction status and other data for individual items. Also, returns IDs for the individual payout items. You can use these item IDs in other calls. Endpoint: GET /v1/payments/payouts/ID

func (*Client) GetPayoutItem Uses

func (c *Client) GetPayoutItem(payoutItemID string) (*PayoutItemResponse, error)

GetPayoutItem shows the details for a payout item. Use this call to review the current status of a previously unclaimed, or pending, payout item. Endpoint: GET /v1/payments/payouts-item/ID

func (*Client) GetProduct Uses

func (c *Client) GetProduct(productId string) (*Product, error)

Get product details Doc: https://developer.paypal.com/docs/api/catalog-products/v1/#products_get Endpoint: GET /v1/catalogs/products/:product_id

func (*Client) GetRefund Uses

func (c *Client) GetRefund(refundID string) (*Refund, error)

GetRefund by ID Use it to look up details of a specific refund on direct and captured payments. Endpoint: GET /v2/payments/refund/ID

func (*Client) GetSale Uses

func (c *Client) GetSale(saleID string) (*Sale, error)

GetSale returns a sale by ID Use this call to get details about a sale transaction. Note: This call returns only the sales that were created via the REST API. Endpoint: GET /v1/payments/sale/ID

func (*Client) GetSubscriptionDetails Uses

func (c *Client) GetSubscriptionDetails(subscriptionID string) (*SubscriptionDetailResp, error)

GetSubscriptionDetails shows details for a subscription, by ID. Endpoint: GET /v1/billing/subscriptions/

func (*Client) GetSubscriptionPlan Uses

func (c *Client) GetSubscriptionPlan(planId string) (*SubscriptionPlan, error)

UpdateSubscriptionPlan. updates a plan Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#plans_get Endpoint: GET /v1/billing/plans/:plan_id

func (*Client) GetSubscriptionTransactions Uses

func (c *Client) GetSubscriptionTransactions(requestParams SubscriptionTransactionsParams) (*SubscriptionTransactionsResponse, error)

Lists transactions for a subscription. Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_transactions Endpoint: GET /v1/billing/subscriptions/{id}/transactions

func (*Client) GetUserInfo Uses

func (c *Client) GetUserInfo(schema string) (*UserInfo, error)

GetUserInfo - Use this call to retrieve user profile attributes. Endpoint: GET /v1/identity/openidconnect/userinfo/?schema=<Schema> Pass the schema that is used to return as per openidconnect protocol. The only supported schema value is openid.

func (*Client) GetWebProfile Uses

func (c *Client) GetWebProfile(profileID string) (*WebProfile, error)

GetWebProfile gets an exists payment experience from Paypal

Endpoint: GET /v1/payment-experience/web-profiles/<profile-id>

func (*Client) GetWebProfiles Uses

func (c *Client) GetWebProfiles() ([]WebProfile, error)

GetWebProfiles retreieves web experience profiles from Paypal

Endpoint: GET /v1/payment-experience/web-profiles

func (*Client) GetWebhook Uses

func (c *Client) GetWebhook(webhookID string) (*Webhook, error)

GetWebhook - Shows details for a webhook, by ID. Endpoint: GET /v1/notifications/webhooks/ID

func (*Client) GrantNewAccessTokenFromAuthCode Uses

func (c *Client) GrantNewAccessTokenFromAuthCode(code, redirectURI string) (*TokenResponse, error)

GrantNewAccessTokenFromAuthCode - Use this call to grant a new access token, using the previously obtained authorization code. Endpoint: POST /v1/identity/openidconnect/tokenservice

func (*Client) GrantNewAccessTokenFromRefreshToken Uses

func (c *Client) GrantNewAccessTokenFromRefreshToken(refreshToken string) (*TokenResponse, error)

GrantNewAccessTokenFromRefreshToken - Use this call to grant a new access token, using a refresh token. Endpoint: POST /v1/identity/openidconnect/tokenservice

func (*Client) ListBillingPlans Uses

func (c *Client) ListBillingPlans(bplp BillingPlanListParams) (*BillingPlanListResp, error)

ListBillingPlans lists billing-plans Endpoint: GET /v1/payments/billing-plans

func (*Client) ListProducts Uses

func (c *Client) ListProducts(params *ProductListParameters) (*ListProductsResponse, error)

List all products Doc: https://developer.paypal.com/docs/api/catalog-products/v1/#products_list Endpoint: GET /v1/catalogs/products

func (*Client) ListSubscriptionPlans Uses

func (c *Client) ListSubscriptionPlans(params *SubscriptionPlanListParameters) (*ListSubscriptionPlansResponse, error)

List all plans Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#plans_list Endpoint: GET /v1/billing/plans

func (*Client) ListTransactions Uses

func (c *Client) ListTransactions(req *TransactionSearchRequest) (*TransactionSearchResponse, error)

ListTransactions - Use this to search PayPal transactions from the last 31 days. Endpoint: GET /v1/reporting/transactions

func (*Client) ListWebhooks Uses

func (c *Client) ListWebhooks(anchorType string) (*ListWebhookResponse, error)

ListWebhooks - Lists webhooks for an app. Endpoint: GET /v1/notifications/webhooks

func (*Client) NewRequest Uses

func (c *Client) NewRequest(method, url string, payload interface{}) (*http.Request, error)

NewRequest constructs a request Convert payload to a JSON

func (*Client) PatchCreditCard Uses

func (c *Client) PatchCreditCard(id string, ccf []CreditCardField) (*CreditCard, error)

PatchCreditCard func Endpoint: PATCH /v1/vault/credit-cards/credit_card_id

func (*Client) ReauthorizeAuthorization Uses

func (c *Client) ReauthorizeAuthorization(authID string, a *Amount) (*Authorization, error)

ReauthorizeAuthorization reauthorize a Paypal account payment. PayPal recommends to reauthorize payment after ~3 days Endpoint: POST /v2/payments/authorizations/ID/reauthorize

func (*Client) RefundCapture Uses

func (c *Client) RefundCapture(captureID string, refundCaptureRequest RefundCaptureRequest) (*RefundResponse, error)

RefundCapture - https://developer.paypal.com/docs/api/payments/v2/#captures_refund Endpoint: POST /v2/payments/captures/ID/refund

func (*Client) RefundCaptureWithPaypalRequestId Uses

func (c *Client) RefundCaptureWithPaypalRequestId(
    captureID string,
    refundCaptureRequest RefundCaptureRequest,
    requestID string,
) (*RefundResponse, error)

RefundCapture with idempotency - https://developer.paypal.com/docs/api/payments/v2/#captures_refund Endpoint: POST /v2/payments/captures/ID/refund

func (*Client) RefundSale Uses

func (c *Client) RefundSale(saleID string, a *Amount) (*Refund, error)

RefundSale refunds a completed payment. Use this call to refund a completed payment. Provide the sale_id in the URI and an empty JSON payload for a full refund. For partial refunds, you can include an amount. Endpoint: POST /v1/payments/sale/ID/refund

func (*Client) Send Uses

func (c *Client) Send(req *http.Request, v interface{}) error

Send makes a request to the API, the response body will be unmarshaled into v, or if v is an io.Writer, the response will be written to it without decoding

func (*Client) SendWithAuth Uses

func (c *Client) SendWithAuth(req *http.Request, v interface{}) error

SendWithAuth makes a request to the API and apply OAuth2 header automatically. If the access token soon to be expired or already expired, it will try to get a new one before making the main request client.Token will be updated when changed

func (*Client) SendWithBasicAuth Uses

func (c *Client) SendWithBasicAuth(req *http.Request, v interface{}) error

SendWithBasicAuth makes a request to the API using clientID:secret basic auth

func (*Client) SetAccessToken Uses

func (c *Client) SetAccessToken(token string)

SetAccessToken sets saved token to current client

func (*Client) SetHTTPClient Uses

func (c *Client) SetHTTPClient(client *http.Client)

SetHTTPClient sets *http.Client to current client

func (*Client) SetLog Uses

func (c *Client) SetLog(log io.Writer)

SetLog will set/change the output destination. If log file is set paypal will log all requests and responses to this Writer

func (*Client) SetReturnRepresentation Uses

func (c *Client) SetReturnRepresentation()

SetReturnRepresentation enables verbose response Verbose response: https://developer.paypal.com/docs/api/orders/v2/#orders-authorize-header-parameters

func (*Client) SetWebProfile Uses

func (c *Client) SetWebProfile(wp WebProfile) error

SetWebProfile sets a web experience profile in Paypal with given id

Endpoint: PUT /v1/payment-experience/web-profiles

func (*Client) StoreCreditCard Uses

func (c *Client) StoreCreditCard(cc CreditCard) (*CreditCard, error)

StoreCreditCard func Endpoint: POST /v1/vault/credit-cards

func (*Client) SuspendSubscription Uses

func (c *Client) SuspendSubscription(subscriptionId, reason string) error

Suspends the subscription. Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_suspend Endpoint: POST /v1/billing/subscriptions/{id}/suspend

func (*Client) UpdateBillingPlan Uses

func (c *Client) UpdateBillingPlan(planId string, pathValues map[string]map[string]interface{}) error

UpdateBillingPlan updates values inside a billing plan Endpoint: PATCH /v1/payments/billing-plans

func (*Client) UpdateOrder Uses

func (c *Client) UpdateOrder(orderID string, purchaseUnits []PurchaseUnitRequest) (*Order, error)

UpdateOrder updates the order by ID Endpoint: PATCH /v2/checkout/orders/ID

func (*Client) UpdateProduct Uses

func (c *Client) UpdateProduct(product Product) error

UpdateProduct. updates a product information Doc: https://developer.paypal.com/docs/api/catalog-products/v1/#products_patch Endpoint: PATCH /v1/catalogs/products/:product_id

func (*Client) UpdateSubscription Uses

func (c *Client) UpdateSubscription(updatedSubscription Subscription) error

UpdateSubscriptionPlan. updates a plan Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_patch Endpoint: PATCH /v1/billing/subscriptions/:subscription_id

func (*Client) UpdateSubscriptionPlan Uses

func (c *Client) UpdateSubscriptionPlan(updatedPlan SubscriptionPlan) error

UpdateSubscriptionPlan. updates a plan Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#plans_patch Endpoint: PATCH /v1/billing/plans/:plan_id

func (*Client) UpdateSubscriptionPlanPricing Uses

func (c *Client) UpdateSubscriptionPlanPricing(planId string, pricingSchemes []PricingSchemeUpdate) error

Updates pricing for a plan. For example, you can update a regular billing cycle from $5 per month to $7 per month. Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#plans_update-pricing-schemes Endpoint: POST /v1/billing/plans/{id}/update-pricing-schemes

func (*Client) UpdateWebhook Uses

func (c *Client) UpdateWebhook(webhookID string, fields []WebhookField) (*Webhook, error)

UpdateWebhook - Updates a webhook to replace webhook fields with new values. Endpoint: PATCH /v1/notifications/webhooks/ID

func (*Client) VerifyWebhookSignature Uses

func (c *Client) VerifyWebhookSignature(httpReq *http.Request, webhookID string) (*VerifyWebhookResponse, error)

VerifyWebhookSignature - Use this to verify the signature of a webhook recieved from paypal. Endpoint: POST /v1/notifications/verify-webhook-signature

func (*Client) VoidAuthorization Uses

func (c *Client) VoidAuthorization(authID string) (*Authorization, error)

VoidAuthorization voids a previously authorized payment Endpoint: POST /v2/payments/authorizations/ID/void

type Consent struct {
    Type    string `json:"type"`
    Granted bool   `json:"granted"`
}

type CreateAgreementResp Uses

type CreateAgreementResp struct {
    Name        string      `json:"name,omitempty"`
    Description string      `json:"description,omitempty"`
    Plan        BillingPlan `json:"plan,omitempty"`
    Links       []Link      `json:"links,omitempty"`
    StartTime   time.Time   `json:"start_time,omitempty"`
}

CreateAgreementResp struct

type CreateBillingResp Uses

type CreateBillingResp struct {
    ID                  string              `json:"id,omitempty"`
    State               string              `json:"state,omitempty"`
    PaymentDefinitions  []PaymentDefinition `json:"payment_definitions,omitempty"`
    MerchantPreferences MerchantPreferences `json:"merchant_preferences,omitempty"`
    CreateTime          time.Time           `json:"create_time,omitempty"`
    UpdateTime          time.Time           `json:"update_time,omitempty"`
    Links               []Link              `json:"links,omitempty"`
}

CreateBillingResp struct

type CreateOrderPayer Uses

type CreateOrderPayer struct {
    Name         *CreateOrderPayerName          `json:"name,omitempty"`
    EmailAddress string                         `json:"email_address,omitempty"`
    PayerID      string                         `json:"payer_id,omitempty"`
    Phone        *PhoneWithType                 `json:"phone,omitempty"`
    BirthDate    string                         `json:"birth_date,omitempty"`
    TaxInfo      *TaxInfo                       `json:"tax_info,omitempty"`
    Address      *ShippingDetailAddressPortable `json:"address,omitempty"`
}

CreateOrderPayer used with create order requests

type CreateOrderPayerName Uses

type CreateOrderPayerName struct {
    GivenName string `json:"given_name,omitempty"`
    Surname   string `json:"surname,omitempty"`
}

CreateOrderPayerName create order payer name

type CreateProductResponse Uses

type CreateProductResponse struct {
    Product
    SharedResponse
}

type CreateSubscriptionPlanResponse Uses

type CreateSubscriptionPlanResponse struct {
    SubscriptionPlan
    SharedResponse
}

type CreateWebhookRequest Uses

type CreateWebhookRequest struct {
    URL        string             `json:"url"`
    EventTypes []WebhookEventType `json:"event_types"`
}

CreateWebhookRequest struct

type CreditCard Uses

type CreditCard struct {
    ID                 string   `json:"id,omitempty"`
    PayerID            string   `json:"payer_id,omitempty"`
    ExternalCustomerID string   `json:"external_customer_id,omitempty"`
    Number             string   `json:"number"`
    Type               string   `json:"type"`
    ExpireMonth        string   `json:"expire_month"`
    ExpireYear         string   `json:"expire_year"`
    CVV2               string   `json:"cvv2,omitempty"`
    FirstName          string   `json:"first_name,omitempty"`
    LastName           string   `json:"last_name,omitempty"`
    BillingAddress     *Address `json:"billing_address,omitempty"`
    State              string   `json:"state,omitempty"`
    ValidUntil         string   `json:"valid_until,omitempty"`
}

CreditCard struct

type CreditCardField Uses

type CreditCardField struct {
    Operation string `json:"op"`
    Path      string `json:"path"`
    Value     string `json:"value"`
}

CreditCardField PATCH /v1/vault/credit-cards/credit_card_id

type CreditCardToken Uses

type CreditCardToken struct {
    CreditCardID string `json:"credit_card_id"`
    PayerID      string `json:"payer_id,omitempty"`
    Last4        string `json:"last4,omitempty"`
    ExpireYear   string `json:"expire_year,omitempty"`
    ExpireMonth  string `json:"expire_month,omitempty"`
}

CreditCardToken struct

type CreditCards Uses

type CreditCards struct {
    Items []CreditCard `json:"items"`
    SharedListResponse
}

CreditCards GET /v1/vault/credit-cards

type CreditCardsFilter Uses

type CreditCardsFilter struct {
    PageSize int
    Page     int
}

CreditCardsFilter struct

type Currency Uses

type Currency struct {
    Currency string `json:"currency,omitempty"`
    Value    string `json:"value,omitempty"`
}

Currency struct

type CycleExecutions Uses

type CycleExecutions struct {
    TenureType      string `json:"tenure_type,omitempty"`
    Sequence        int    `json:"sequence,omitempty"`
    CyclesCompleted int    `json:"cycles_completed,omitempty"`
    CyclesRemaining int    `json:"cycles_remaining,omitempty"`
    TotalCycles     int    `json:"total_cycles,omitempty"`
}

CycleExecutions struct

type Details Uses

type Details struct {
    Subtotal         string `json:"subtotal,omitempty"`
    Shipping         string `json:"shipping,omitempty"`
    Tax              string `json:"tax,omitempty"`
    HandlingFee      string `json:"handling_fee,omitempty"`
    ShippingDiscount string `json:"shipping_discount,omitempty"`
    Insurance        string `json:"insurance,omitempty"`
    GiftWrap         string `json:"gift_wrap,omitempty"`
}

Details structure used in Amount structures as optional value

type ErrorResponse Uses

type ErrorResponse struct {
    Response        *http.Response        `json:"-"`
    Name            string                `json:"name"`
    DebugID         string                `json:"debug_id"`
    Message         string                `json:"message"`
    InformationLink string                `json:"information_link"`
    Details         []ErrorResponseDetail `json:"details"`
}

ErrorResponse https://developer.paypal.com/docs/api/errors/

func (*ErrorResponse) Error Uses

func (r *ErrorResponse) Error() string

Error method implementation for ErrorResponse struct

type ErrorResponseDetail Uses

type ErrorResponseDetail struct {
    Field string `json:"field"`
    Issue string `json:"issue"`
    Links []Link `json:"link"`
}

ErrorResponseDetail struct

type ExchangeRate Uses

type ExchangeRate struct {
    SourceCurrency string `json:"source_currency"`
    TargetCurrency string `json:"target_currency"`
    Value          string `json:"value"`
}

ExchangeRate struct

https://developer.paypal.com/docs/api/orders/v2/#definition-exchange_rate

type ExecuteAgreementResponse Uses

type ExecuteAgreementResponse struct {
    ID               string           `json:"id"`
    State            string           `json:"state"`
    Description      string           `json:"description,omitempty"`
    Payer            Payer            `json:"payer"`
    Plan             BillingPlan      `json:"plan"`
    StartDate        time.Time        `json:"start_date"`
    ShippingAddress  ShippingAddress  `json:"shipping_address"`
    AgreementDetails AgreementDetails `json:"agreement_details"`
    Links            []Link           `json:"links"`
}

ExecuteAgreementResponse struct

type ExecuteResponse Uses

type ExecuteResponse struct {
    ID           string        `json:"id"`
    Links        []Link        `json:"links"`
    State        string        `json:"state"`
    Payer        PaymentPayer  `json:"payer"`
    Transactions []Transaction `json:"transactions,omitempty"`
}

ExecuteResponse struct

type Filter Uses

type Filter struct {
    // contains filtered or unexported fields
}

Filter type

func (*Filter) AddTextField Uses

func (s *Filter) AddTextField(field string) *TextField

AddTextField .

func (*Filter) AddTimeField Uses

func (s *Filter) AddTimeField(field string) *TimeField

AddTimeField .

func (*Filter) String Uses

func (s *Filter) String() string

type FlowConfig Uses

type FlowConfig struct {
    LandingPageType   string `json:"landing_page_type,omitempty"`
    BankTXNPendingURL string `json:"bank_txn_pending_url,omitempty"`
    UserAction        string `json:"user_action,omitempty"`
}

FlowConfig represents the general behaviour of redirect payment pages

https://developer.paypal.com/docs/api/payment-experience/#definition-flow_config

type Frequency Uses

type Frequency struct {
    IntervalUnit  IntervalUnit `json:"interval_unit"`
    IntervalCount int          `json:"interval_count"` //different per unit. check documentation
}

doc: https://developer.paypal.com/docs/api/subscriptions/v1/#definition-frequency

type FundingInstrument Uses

type FundingInstrument struct {
    CreditCard      *CreditCard      `json:"credit_card,omitempty"`
    CreditCardToken *CreditCardToken `json:"credit_card_token,omitempty"`
}

FundingInstrument struct

type InputFields Uses

type InputFields struct {
    AllowNote       bool `json:"allow_note,omitempty"`
    NoShipping      uint `json:"no_shipping,omitempty"`
    AddressOverride uint `json:"address_override,omitempty"`
}

InputFields represents the fields that are displayed to a customer on redirect payments

https://developer.paypal.com/docs/api/payment-experience/#definition-input_fields

type IntegrationDetails Uses

type IntegrationDetails struct {
    RestAPIIntegration *RestAPIIntegration `json:"rest_api_integration,omitempty"`
}

type IntervalUnit Uses

type IntervalUnit string
const (
    IntervalUnitDay   IntervalUnit = "DAY"
    IntervalUnitWeek  IntervalUnit = "WEEK"
    IntervalUnitMonth IntervalUnit = "MONTH"
    IntervalUnitYear  IntervalUnit = "YEAR"
)

type Item Uses

type Item struct {
    Name        string `json:"name"`
    UnitAmount  *Money `json:"unit_amount,omitempty"`
    Tax         *Money `json:"tax,omitempty"`
    Quantity    string `json:"quantity"`
    Description string `json:"description,omitempty"`
    SKU         string `json:"sku,omitempty"`
    Category    string `json:"category,omitempty"`
}

Item struct

type ItemList Uses

type ItemList struct {
    Items           []Item           `json:"items,omitempty"`
    ShippingAddress *ShippingAddress `json:"shipping_address,omitempty"`
}

ItemList struct

type JSONTime Uses

type JSONTime time.Time

JSONTime overrides MarshalJson method to format in ISO8601

func (JSONTime) MarshalJSON Uses

func (t JSONTime) MarshalJSON() ([]byte, error)

MarshalJSON for JSONTime

func (*JSONTime) UnmarshalJSON Uses

func (t *JSONTime) UnmarshalJSON(b []byte) error

UnmarshalJSON for JSONTime, timezone offset is missing a colon ':"

type LastPayment Uses

type LastPayment struct {
    Amount Money     `json:"amount,omitempty"`
    Time   time.Time `json:"time,omitempty"`
}

LastPayment struct

type Link struct {
    Href        string `json:"href"`
    Rel         string `json:"rel,omitempty"`
    Method      string `json:"method,omitempty"`
    Description string `json:"description,omitempty"`
    Enctype     string `json:"enctype,omitempty"`
}

Link struct

type ListParams Uses

type ListParams struct {
    Page          string `json:"page,omitempty"`           //Default: 0.
    PageSize      string `json:"page_size,omitempty"`      //Default: 10.
    TotalRequired string `json:"total_required,omitempty"` //Default: no.
}

type ListProductsResponse Uses

type ListProductsResponse struct {
    Products []Product `json:"products"`
    SharedListResponse
}

type ListSubscriptionPlansResponse Uses

type ListSubscriptionPlansResponse struct {
    Plans []SubscriptionPlan `json:"plans"`
    SharedListResponse
}

type ListWebhookResponse Uses

type ListWebhookResponse struct {
    Webhooks []Webhook `json:"webhooks"`
}

type MerchantPreferences Uses

type MerchantPreferences struct {
    SetupFee                *AmountPayout `json:"setup_fee,omitempty"`
    ReturnURL               string        `json:"return_url,omitempty"`
    CancelURL               string        `json:"cancel_url,omitempty"`
    AutoBillAmount          string        `json:"auto_bill_amount,omitempty"`
    InitialFailAmountAction string        `json:"initial_fail_amount_action,omitempty"`
    MaxFailAttempts         string        `json:"max_fail_attempts,omitempty"`
}

MerchantPreferences struct

type Money Uses

type Money struct {
    Currency string `json:"currency_code"`
    Value    string `json:"value"`
}

Money struct

https://developer.paypal.com/docs/api/orders/v2/#definition-money

type Name Uses

type Name struct {
    FullName   string `json:"full_name,omitempty"`
    Suffix     string `json:"suffix,omitempty"`
    Prefix     string `json:"prefix,omitempty"`
    GivenName  string `json:"given_name,omitempty"`
    Surname    string `json:"surname,omitempty"`
    MiddleName string `json:"middle_name,omitempty"`
}

Name struct Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#definition-name

type Operation Uses

type Operation struct {
    Operation                string              `json:"operation"`
    APIIntegrationPreference *IntegrationDetails `json:"api_integration_preference,omitempty"`
}

type Order Uses

type Order struct {
    ID            string                 `json:"id,omitempty"`
    Status        string                 `json:"status,omitempty"`
    Intent        string                 `json:"intent,omitempty"`
    Payer         *PayerWithNameAndPhone `json:"payer,omitempty"`
    PurchaseUnits []PurchaseUnit         `json:"purchase_units,omitempty"`
    Links         []Link                 `json:"links,omitempty"`
    CreateTime    *time.Time             `json:"create_time,omitempty"`
    UpdateTime    *time.Time             `json:"update_time,omitempty"`
}

Order struct

type PartnerConfigOverride Uses

type PartnerConfigOverride struct {
    PartnerLogoURL       string `json:"partner_logo_url,omitempty"`
    ReturnURL            string `json:"return_url,omitempty"`
    ReturnURLDescription string `json:"return_url_description,omitempty"`
    ActionRenewalURL     string `json:"action_renewal_url,omitempty"`
    ShowAddCreditCard    *bool  `json:"show_add_credit_card,omitempty"`
}

type Patch Uses

type Patch struct {
    Operation string      `json:"op"`
    Path      string      `json:"path"`
    Value     interface{} `json:"value"`
}

type Payee Uses

type Payee struct {
    Email string `json:"email"`
}

Payee struct

type PayeeForOrders Uses

type PayeeForOrders struct {
    EmailAddress string `json:"email_address,omitempty"`
    MerchantID   string `json:"merchant_id,omitempty"`
}

PayeeForOrders struct

type Payer Uses

type Payer struct {
    PaymentMethod      string              `json:"payment_method"`
    FundingInstruments []FundingInstrument `json:"funding_instruments,omitempty"`
    PayerInfo          *PayerInfo          `json:"payer_info,omitempty"`
    Status             string              `json:"payer_status,omitempty"`
}

Payer struct

type PayerInfo Uses

type PayerInfo struct {
    Email           string           `json:"email,omitempty"`
    FirstName       string           `json:"first_name,omitempty"`
    LastName        string           `json:"last_name,omitempty"`
    PayerID         string           `json:"payer_id,omitempty"`
    Phone           string           `json:"phone,omitempty"`
    ShippingAddress *ShippingAddress `json:"shipping_address,omitempty"`
    TaxIDType       string           `json:"tax_id_type,omitempty"`
    TaxID           string           `json:"tax_id,omitempty"`
    CountryCode     string           `json:"country_code"`
}

PayerInfo struct

type PayerWithNameAndPhone Uses

type PayerWithNameAndPhone struct {
    Name         *CreateOrderPayerName `json:"name,omitempty"`
    EmailAddress string                `json:"email_address,omitempty"`
    Phone        *PhoneWithType        `json:"phone,omitempty"`
    PayerID      string                `json:"payer_id,omitempty"`
}

PayerWithNameAndPhone struct

type PaymentCaptureRequest Uses

type PaymentCaptureRequest struct {
    InvoiceID      string `json:"invoice_id,omitempty"`
    NoteToPayer    string `json:"note_to_payer,omitempty"`
    SoftDescriptor string `json:"soft_descriptor,omitempty"`
    Amount         *Money `json:"amount,omitempty"`
    FinalCapture   bool   `json:"final_capture,omitempty"`
}

https://developer.paypal.com/docs/api/payments/v2/#authorizations_capture

type PaymentCaptureResponse Uses

type PaymentCaptureResponse struct {
    Status           string                `json:"status,omitempty"`
    StatusDetails    *CaptureStatusDetails `json:"status_details,omitempty"`
    ID               string                `json:"id,omitempty"`
    Amount           *Money                `json:"amount,omitempty"`
    InvoiceID        string                `json:"invoice_id,omitempty"`
    FinalCapture     bool                  `json:"final_capture,omitempty"`
    DisbursementMode string                `json:"disbursement_mode,omitempty"`
    Links            []Link                `json:"links,omitempty"`
}

type PaymentDefinition Uses

type PaymentDefinition struct {
    ID                string        `json:"id,omitempty"`
    Name              string        `json:"name,omitempty"`
    Type              string        `json:"type,omitempty"`
    Frequency         string        `json:"frequency,omitempty"`
    FrequencyInterval string        `json:"frequency_interval,omitempty"`
    Amount            AmountPayout  `json:"amount,omitempty"`
    Cycles            string        `json:"cycles,omitempty"`
    ChargeModels      []ChargeModel `json:"charge_models,omitempty"`
}

PaymentDefinition struct

type PaymentInstruction Uses

type PaymentInstruction struct {
    PlatformFees     []PlatformFee `json:"platform_fees,omitempty"`
    DisbursementMode string        `json:"disbursement_mode,omitempty"`
}

https://developer.paypal.com/docs/api/payments/v2/#definition-payment_instruction

type PaymentOptions Uses

type PaymentOptions struct {
    AllowedPaymentMethod string `json:"allowed_payment_method,omitempty"`
}

PaymentOptions struct

type PaymentPatch Uses

type PaymentPatch struct {
    Operation string      `json:"op"`
    Path      string      `json:"path"`
    Value     interface{} `json:"value"`
}

PaymentPatch PATCH /v2/payments/payment/{payment_id)

type PaymentPayer Uses

type PaymentPayer struct {
    PaymentMethod string     `json:"payment_method"`
    Status        string     `json:"status,omitempty"`
    PayerInfo     *PayerInfo `json:"payer_info,omitempty"`
}

PaymentPayer struct

type PaymentPreferences Uses

type PaymentPreferences struct {
    AutoBillOutstanding     bool                  `json:"auto_bill_outstanding"`
    SetupFee                *Money                `json:"setup_fee"`
    SetupFeeFailureAction   SetupFeeFailureAction `json:"setup_fee_failure_action"`
    PaymentFailureThreshold int                   `json:"payment_failure_threshold"`
}

Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#definition-payment_preferences

type PaymentResponse Uses

type PaymentResponse struct {
    ID           string        `json:"id"`
    State        string        `json:"state"`
    Intent       string        `json:"intent"`
    Payer        Payer         `json:"payer"`
    Transactions []Transaction `json:"transactions"`
    Links        []Link        `json:"links"`
}

PaymentResponse structure

type PaymentSource Uses

type PaymentSource struct {
    Card  *PaymentSourceCard  `json:"card"`
    Token *PaymentSourceToken `json:"token"`
}

PaymentSource structure

type PaymentSourceCard Uses

type PaymentSourceCard struct {
    ID             string              `json:"id"`
    Name           string              `json:"name"`
    Number         string              `json:"number"`
    Expiry         string              `json:"expiry"`
    SecurityCode   string              `json:"security_code"`
    LastDigits     string              `json:"last_digits"`
    CardType       string              `json:"card_type"`
    BillingAddress *CardBillingAddress `json:"billing_address"`
}

PaymentSourceCard structure

type PaymentSourceToken Uses

type PaymentSourceToken struct {
    ID   string `json:"id"`
    Type string `json:"type"`
}

PaymentSourceToken structure

type Payout Uses

type Payout struct {
    SenderBatchHeader *SenderBatchHeader `json:"sender_batch_header"`
    Items             []PayoutItem       `json:"items"`
}

Payout struct

type PayoutItem Uses

type PayoutItem struct {
    RecipientType   string        `json:"recipient_type"`
    RecipientWallet string        `json:"recipient_wallet"`
    Receiver        string        `json:"receiver"`
    Amount          *AmountPayout `json:"amount"`
    Note            string        `json:"note,omitempty"`
    SenderItemID    string        `json:"sender_item_id,omitempty"`
}

PayoutItem struct

type PayoutItemResponse Uses

type PayoutItemResponse struct {
    PayoutItemID      string        `json:"payout_item_id"`
    TransactionID     string        `json:"transaction_id"`
    TransactionStatus string        `json:"transaction_status"`
    PayoutBatchID     string        `json:"payout_batch_id,omitempty"`
    PayoutItemFee     *AmountPayout `json:"payout_item_fee,omitempty"`
    PayoutItem        *PayoutItem   `json:"payout_item"`
    TimeProcessed     *time.Time    `json:"time_processed,omitempty"`
    Links             []Link        `json:"links"`
    Error             ErrorResponse `json:"errors,omitempty"`
}

PayoutItemResponse struct

type PayoutResponse Uses

type PayoutResponse struct {
    BatchHeader *BatchHeader         `json:"batch_header"`
    Items       []PayoutItemResponse `json:"items"`
    Links       []Link               `json:"links"`
}

PayoutResponse struct

type PhoneWithType Uses

type PhoneWithType struct {
    PhoneType   string               `json:"phone_type,omitempty"`
    PhoneNumber *PhoneWithTypeNumber `json:"phone_number,omitempty"`
}

PhoneWithType struct used for orders

type PhoneWithTypeNumber Uses

type PhoneWithTypeNumber struct {
    NationalNumber string `json:"national_number,omitempty"`
}

PhoneWithTypeNumber struct for PhoneWithType

type PlatformFee Uses

type PlatformFee struct {
    Amount *Money          `json:"amount,omitempty"`
    Payee  *PayeeForOrders `json:"payee,omitempty"`
}

https://developer.paypal.com/docs/api/payments/v2/#definition-platform_fee

type Presentation Uses

type Presentation struct {
    BrandName  string `json:"brand_name,omitempty"`
    LogoImage  string `json:"logo_image,omitempty"`
    LocaleCode string `json:"locale_code,omitempty"`
}

Presentation represents the branding and locale that a customer sees on redirect payments

https://developer.paypal.com/docs/api/payment-experience/#definition-presentation

type PricingScheme Uses

type PricingScheme struct {
    Version    int       `json:"version"`
    FixedPrice Money     `json:"fixed_price"`
    CreateTime time.Time `json:"create_time"`
    UpdateTime time.Time `json:"update_time"`
}

type PricingSchemeUpdate Uses

type PricingSchemeUpdate struct {
    BillingCycleSequence int           `json:"billing_cycle_sequence"`
    PricingScheme        PricingScheme `json:"pricing_scheme"`
}

type PricingSchemeUpdateRequest Uses

type PricingSchemeUpdateRequest struct {
    Schemes []PricingSchemeUpdate `json:"pricing_schemes"`
}

type Product Uses

type Product struct {
    ID          string          `json:"id,omitempty"`
    Name        string          `json:"name,omitempty"`
    Description string          `json:"description"`
    Category    ProductCategory `json:"category,omitempty"`
    Type        ProductType     `json:"type"`
    ImageUrl    string          `json:"image_url"`
    HomeUrl     string          `json:"home_url"`
}

Product struct

func (*Product) GetUpdatePatch Uses

func (self *Product) GetUpdatePatch() []Patch

type ProductCategory Uses

type ProductCategory string //Doc: https://developer.paypal.com/docs/api/catalog-products/v1/#definition-product_category

type ProductListParameters Uses

type ProductListParameters struct {
    ListParams
}

type ProductType Uses

type ProductType string

type PurchaseUnit Uses

type PurchaseUnit struct {
    ReferenceID string              `json:"reference_id"`
    Amount      *PurchaseUnitAmount `json:"amount,omitempty"`
}

PurchaseUnit struct

type PurchaseUnitAmount Uses

type PurchaseUnitAmount struct {
    Currency  string                       `json:"currency_code"`
    Value     string                       `json:"value"`
    Breakdown *PurchaseUnitAmountBreakdown `json:"breakdown,omitempty"`
}

PurchaseUnitAmount struct

type PurchaseUnitAmountBreakdown Uses

type PurchaseUnitAmountBreakdown struct {
    ItemTotal        *Money `json:"item_total,omitempty"`
    Shipping         *Money `json:"shipping,omitempty"`
    Handling         *Money `json:"handling,omitempty"`
    TaxTotal         *Money `json:"tax_total,omitempty"`
    Insurance        *Money `json:"insurance,omitempty"`
    ShippingDiscount *Money `json:"shipping_discount,omitempty"`
    Discount         *Money `json:"discount,omitempty"`
}

PurchaseUnitAmountBreakdown struct

type PurchaseUnitRequest Uses

type PurchaseUnitRequest struct {
    ReferenceID    string              `json:"reference_id,omitempty"`
    Amount         *PurchaseUnitAmount `json:"amount"`
    Payee          *PayeeForOrders     `json:"payee,omitempty"`
    Description    string              `json:"description,omitempty"`
    CustomID       string              `json:"custom_id,omitempty"`
    InvoiceID      string              `json:"invoice_id,omitempty"`
    SoftDescriptor string              `json:"soft_descriptor,omitempty"`
    Items          []Item              `json:"items,omitempty"`
    Shipping       *ShippingDetail     `json:"shipping,omitempty"`
}

PurchaseUnitRequest struct

type RedirectURLs Uses

type RedirectURLs struct {
    ReturnURL string `json:"return_url,omitempty"`
    CancelURL string `json:"cancel_url,omitempty"`
}

RedirectURLs struct

type ReferralRequest Uses

type ReferralRequest struct {
    TrackingID            string                 `json:"tracking_id"`
    PartnerConfigOverride *PartnerConfigOverride `json:"partner_config_override,omitempty"`
    Operations            []Operation            `json:"operations,omitempty"`
    Products              []string               `json:"products,omitempty"`
    LegalConsents         []Consent              `json:"legal_consents,omitempty"`
}

type Refund Uses

type Refund struct {
    ID            string     `json:"id,omitempty"`
    Amount        *Amount    `json:"amount,omitempty"`
    CreateTime    *time.Time `json:"create_time,omitempty"`
    State         string     `json:"state,omitempty"`
    CaptureID     string     `json:"capture_id,omitempty"`
    ParentPayment string     `json:"parent_payment,omitempty"`
    UpdateTime    *time.Time `json:"update_time,omitempty"`
}

Refund struct

type RefundCaptureRequest Uses

type RefundCaptureRequest struct {
    Amount      *Money `json:"amount,omitempty"`
    InvoiceID   string `json:"invoice_id,omitempty"`
    NoteToPayer string `json:"note_to_payer,omitempty"`
}

RefundOrderRequest - https://developer.paypal.com/docs/api/payments/v2/#captures_refund

type RefundResponse Uses

type RefundResponse struct {
    ID     string              `json:"id,omitempty"`
    Amount *PurchaseUnitAmount `json:"amount,omitempty"`
    Status string              `json:"status,omitempty"`
}

RefundResponse .

type Related struct {
    Sale          *Sale          `json:"sale,omitempty"`
    Authorization *Authorization `json:"authorization,omitempty"`
    Order         *Order         `json:"order,omitempty"`
    Capture       *Capture       `json:"capture,omitempty"`
    Refund        *Refund        `json:"refund,omitempty"`
}

Related struct

type Resource Uses

type Resource struct {
    // Payment Resource type
    ID                     string                  `json:"id,omitempty"`
    Status                 string                  `json:"status,omitempty"`
    StatusDetails          *CaptureStatusDetails   `json:"status_details,omitempty"`
    Amount                 *PurchaseUnitAmount     `json:"amount,omitempty"`
    UpdateTime             string                  `json:"update_time,omitempty"`
    CreateTime             string                  `json:"create_time,omitempty"`
    ExpirationTime         string                  `json:"expiration_time,omitempty"`
    SellerProtection       *SellerProtection       `json:"seller_protection,omitempty"`
    FinalCapture           bool                    `json:"final_capture,omitempty"`
    SellerPayableBreakdown *CaptureSellerBreakdown `json:"seller_payable_breakdown,omitempty"`
    NoteToPayer            string                  `json:"note_to_payer,omitempty"`
    // merchant-onboarding Resource type
    PartnerClientID string `json:"partner_client_id,omitempty"`
    MerchantID      string `json:"merchant_id,omitempty"`
    // Common
    Links []Link `json:"links,omitempty"`
}

type RestAPIIntegration Uses

type RestAPIIntegration struct {
    IntegrationMethod string            `json:"integration_method"`
    IntegrationType   string            `json:"integration_type"`
    ThirdPartyDetails ThirdPartyDetails `json:"third_party_details"`
}

type Sale Uses

type Sale struct {
    ID                        string     `json:"id,omitempty"`
    Amount                    *Amount    `json:"amount,omitempty"`
    TransactionFee            *Currency  `json:"transaction_fee,omitempty"`
    Description               string     `json:"description,omitempty"`
    CreateTime                *time.Time `json:"create_time,omitempty"`
    State                     string     `json:"state,omitempty"`
    ParentPayment             string     `json:"parent_payment,omitempty"`
    UpdateTime                *time.Time `json:"update_time,omitempty"`
    PaymentMode               string     `json:"payment_mode,omitempty"`
    PendingReason             string     `json:"pending_reason,omitempty"`
    ReasonCode                string     `json:"reason_code,omitempty"`
    ClearingTime              string     `json:"clearing_time,omitempty"`
    ProtectionEligibility     string     `json:"protection_eligibility,omitempty"`
    ProtectionEligibilityType string     `json:"protection_eligibility_type,omitempty"`
    Links                     []Link     `json:"links,omitempty"`
}

Sale struct

type SearchCartInfo Uses

type SearchCartInfo struct {
    ItemDetails     []SearchItemDetails `json:"item_details"`
    TaxInclusive    *bool               `json:"tax_inclusive"`
    PayPalInvoiceID string              `json:"paypal_invoice_id"`
}

type SearchCheckoutOption Uses

type SearchCheckoutOption struct {
    CheckoutOptionName  string `json:"checkout_option_name"`
    CheckoutOptionValue string `json:"checkout_option_value"`
}

type SearchItemDetails Uses

type SearchItemDetails struct {
    ItemCode            string                 `json:"item_code"`
    ItemName            string                 `json:"item_name"`
    ItemDescription     string                 `json:"item_description"`
    ItemOptions         string                 `json:"item_options"`
    ItemQuantity        string                 `json:"item_quantity"`
    ItemUnitPrice       Money                  `json:"item_unit_price"`
    ItemAmount          Money                  `json:"item_amount"`
    DiscountAmount      *Money                 `json:"discount_amount"`
    AdjustmentAmount    *Money                 `json:"adjustment_amount"`
    GiftWrapAmount      *Money                 `json:"gift_wrap_amount"`
    TaxPercentage       string                 `json:"tax_percentage"`
    TaxAmounts          []SearchTaxAmount      `json:"tax_amounts"`
    BasicShippingAmount *Money                 `json:"basic_shipping_amount"`
    ExtraShippingAmount *Money                 `json:"extra_shipping_amount"`
    HandlingAmount      *Money                 `json:"handling_amount"`
    InsuranceAmount     *Money                 `json:"insurance_amount"`
    TotalItemAmount     Money                  `json:"total_item_amount"`
    InvoiceNumber       string                 `json:"invoice_number"`
    CheckoutOptions     []SearchCheckoutOption `json:"checkout_options"`
}

type SearchPayerInfo Uses

type SearchPayerInfo struct {
    AccountID     string               `json:"account_id"`
    EmailAddress  string               `json:"email_address"`
    PhoneNumber   *PhoneWithTypeNumber `json:"phone_number"`
    AddressStatus string               `json:"address_status"`
    PayerStatus   string               `json:"payer_status"`
    PayerName     SearchPayerName      `json:"payer_name"`
    CountryCode   string               `json:"country_code"`
    Address       *Address             `json:"address"`
}

type SearchPayerName Uses

type SearchPayerName struct {
    GivenName string `json:"given_name"`
    Surname   string `json:"surname"`
}

type SearchShippingInfo Uses

type SearchShippingInfo struct {
    Name                     string   `json:"name"`
    Method                   string   `json:"method"`
    Address                  Address  `json:"address"`
    SecondaryShippingAddress *Address `json:"secondary_shipping_address"`
}

type SearchTaxAmount Uses

type SearchTaxAmount struct {
    TaxAmount Money `json:"tax_amount"`
}

type SearchTransactionDetails Uses

type SearchTransactionDetails struct {
    TransactionInfo SearchTransactionInfo `json:"transaction_info"`
    PayerInfo       *SearchPayerInfo      `json:"payer_info"`
    ShippingInfo    *SearchShippingInfo   `json:"shipping_info"`
    CartInfo        *SearchCartInfo       `json:"cart_info"`
}

type SearchTransactionInfo Uses

type SearchTransactionInfo struct {
    PayPalAccountID           string   `json:"paypal_account_id"`
    TransactionID             string   `json:"transaction_id"`
    PayPalReferenceID         string   `json:"paypal_reference_id"`
    PayPalReferenceIDType     string   `json:"paypal_reference_id_type"`
    TransactionEventCode      string   `json:"transaction_event_code"`
    TransactionInitiationDate JSONTime `json:"transaction_initiation_date"`
    TransactionUpdatedDate    JSONTime `json:"transaction_updated_date"`
    TransactionAmount         Money    `json:"transaction_amount"`
    FeeAmount                 *Money   `json:"fee_amount"`
    InsuranceAmount           *Money   `json:"insurance_amount"`
    ShippingAmount            *Money   `json:"shipping_amount"`
    ShippingDiscountAmount    *Money   `json:"shipping_discount_amount"`
    ShippingTaxAmount         *Money   `json:"shipping_tax_amount"`
    OtherAmount               *Money   `json:"other_amount"`
    TipAmount                 *Money   `json:"tip_amount"`
    TransactionStatus         string   `json:"transaction_status"`
    TransactionSubject        string   `json:"transaction_subject"`
    PaymentTrackingID         string   `json:"payment_tracking_id"`
    BankReferenceID           string   `json:"bank_reference_id"`
    TransactionNote           string   `json:"transaction_note"`
    EndingBalance             *Money   `json:"ending_balance"`
    AvailableBalance          *Money   `json:"available_balance"`
    InvoiceID                 string   `json:"invoice_id"`
    CustomField               string   `json:"custom_field"`
    ProtectionEligibility     string   `json:"protection_eligibility"`
    CreditTerm                string   `json:"credit_term"`
    CreditTransactionalFee    *Money   `json:"credit_transactional_fee"`
    CreditPromotionalFee      *Money   `json:"credit_promotional_fee"`
    AnnualPercentageRate      string   `json:"annual_percentage_rate"`
    PaymentMethodType         string   `json:"payment_method_type"`
}

type SellerProtection Uses

type SellerProtection struct {
    Status            string   `json:"status,omitempty"`
    DisputeCategories []string `json:"dispute_categories,omitempty"`
}

type SellerReceivableBreakdown Uses

type SellerReceivableBreakdown struct {
    GrossAmount                   *Money        `json:"gross_amount,omitempty"`
    PaypalFee                     *Money        `json:"paypal_fee,omitempty"`
    PaypalFeeInReceivableCurrency *Money        `json:"paypal_fee_in_receivable_currency,omitempty"`
    NetAmount                     *Money        `json:"net_amount,omitempty"`
    ReceivableAmount              *Money        `json:"receivable_amount,omitempty"`
    ExchangeRate                  *ExchangeRate `json:"exchange_rate,omitempty"`
    PlatformFees                  []PlatformFee `json:"platform_fees,omitempty"`
}

SellerReceivableBreakdown has the detailed breakdown of the capture activity.

type SenderBatchHeader Uses

type SenderBatchHeader struct {
    EmailSubject  string `json:"email_subject"`
    EmailMessage  string `json:"email_message"`
    SenderBatchID string `json:"sender_batch_id,omitempty"`
}

SenderBatchHeader struct

type SetupFeeFailureAction Uses

type SetupFeeFailureAction string
const (
    SetupFeeFailureActionContinue SetupFeeFailureAction = "CONTINUE"
    SetupFeeFailureActionCancel   SetupFeeFailureAction = "CANCEL"
)

type SharedListResponse Uses

type SharedListResponse struct {
    TotalItems int    `json:"total_items,omitempty"`
    TotalPages int    `json:"total_pages,omitempty"`
    Links      []Link `json:"links,omitempty"`
}

type SharedResponse Uses

type SharedResponse struct {
    CreateTime string `json:"create_time"`
    UpdateTime string `json:"update_time"`
    Links      []Link `json:"links"`
}

type ShippingAddress Uses

type ShippingAddress struct {
    RecipientName string `json:"recipient_name,omitempty"`
    Type          string `json:"type,omitempty"`
    Line1         string `json:"line1"`
    Line2         string `json:"line2,omitempty"`
    City          string `json:"city"`
    CountryCode   string `json:"country_code"`
    PostalCode    string `json:"postal_code,omitempty"`
    State         string `json:"state,omitempty"`
    Phone         string `json:"phone,omitempty"`
}

ShippingAddress struct

type ShippingAmount Uses

type ShippingAmount struct {
    Money
}

ShippingAmount struct

type ShippingDetail Uses

type ShippingDetail struct {
    Name    *Name                          `json:"name,omitempty"`
    Address *ShippingDetailAddressPortable `json:"address,omitempty"`
}

ShippingDetail struct

type ShippingDetailAddressPortable Uses

type ShippingDetailAddressPortable struct {
    AddressLine1 string `json:"address_line_1,omitempty"`
    AddressLine2 string `json:"address_line_2,omitempty"`
    AdminArea1   string `json:"admin_area_1,omitempty"`
    AdminArea2   string `json:"admin_area_2,omitempty"`
    PostalCode   string `json:"postal_code,omitempty"`
    CountryCode  string `json:"country_code,omitempty"`
}

ShippingDetailAddressPortable used with create orders

type ShippingPreference Uses

type ShippingPreference string
const (
    ShippingPreferenceGetFromFile        ShippingPreference = "GET_FROM_FILE"
    ShippingPreferenceNoShipping         ShippingPreference = "NO_SHIPPING"
    ShippingPreferenceSetProvidedAddress ShippingPreference = "SET_PROVIDED_ADDRESS"
)

type Subscriber Uses

type Subscriber struct {
    ShippingAddress ShippingDetail       `json:"shipping_address,omitempty"`
    Name            CreateOrderPayerName `json:"name,omitempty"`
    EmailAddress    string               `json:"email_address,omitempty"`
}

Subscriber struct

type Subscription Uses

type Subscription struct {
    SubscriptionDetailResp
}

func (*Subscription) GetUpdatePatch Uses

func (self *Subscription) GetUpdatePatch() []Patch

type SubscriptionBase Uses

type SubscriptionBase struct {
    PlanID             string              `json:"plan_id"`
    StartTime          *JSONTime           `json:"start_time,omitempty"`
    Quantity           string              `json:"quantity,omitempty"`
    ShippingAmount     *Money              `json:"shipping_amount,omitempty"`
    Subscriber         *Subscriber         `json:"subscriber,omitempty"`
    AutoRenewal        bool                `json:"auto_renewal,omitempty"`
    ApplicationContext *ApplicationContext `json:"application_context,omitempty"`
}

type SubscriptionCaptureResponse Uses

type SubscriptionCaptureResponse struct {
    Status              SubscriptionTransactionStatus `json:"status"`
    Id                  string                        `json:"id"`
    AmountWithBreakdown AmountWithBreakdown           `json:"amount_with_breakdown"`
    PayerName           Name                          `json:"payer_name"`
    PayerEmail          string                        `json:"payer_email"`
    Time                time.Time                     `json:"time"`
}

type SubscriptionDetailResp Uses

type SubscriptionDetailResp struct {
    SubscriptionBase
    SubscriptionDetails
    BillingInfo BillingInfo `json:"billing_info,omitempty"` // not found in documentation
    SharedResponse
}

SubscriptionDetailResp struct

type SubscriptionDetails Uses

type SubscriptionDetails struct {
    ID                           string             `json:"id,omitempty"`
    SubscriptionStatus           SubscriptionStatus `json:"status,omitempty"`
    SubscriptionStatusChangeNote string             `json:"status_change_note,omitempty"`
    StatusUpdateTime             time.Time          `json:"status_update_time,omitempty"`
}

type SubscriptionPlan Uses

type SubscriptionPlan struct {
    ID                 string                 `json:"id,omitempty"`
    ProductId          string                 `json:"product_id"`
    Name               string                 `json:"name"`
    Status             SubscriptionPlanStatus `json:"status"`
    Description        string                 `json:"description,omitempty"`
    BillingCycles      []BillingCycle         `json:"billing_cycles"`
    PaymentPreferences *PaymentPreferences    `json:"payment_preferences"`
    Taxes              *Taxes                 `json:"taxes"`
    QuantitySupported  bool                   `json:"quantity_supported"` //Indicates whether you can subscribe to this plan by providing a quantity for the goods or service.
}

SubscriptionDetailResp struct

func (*SubscriptionPlan) GetUpdatePatch Uses

func (self *SubscriptionPlan) GetUpdatePatch() []Patch

type SubscriptionPlanListParameters Uses

type SubscriptionPlanListParameters struct {
    ProductId string `json:"product_id"`
    PlanIds   string `json:"plan_ids"` // Filters the response by list of plan IDs. Filter supports upto 10 plan IDs.
    ListParams
}

type SubscriptionPlanStatus Uses

type SubscriptionPlanStatus string
const (
    SubscriptionPlanStatusCreated  SubscriptionPlanStatus = "CREATED"
    SubscriptionPlanStatusInactive SubscriptionPlanStatus = "INACTIVE"
    SubscriptionPlanStatusActive   SubscriptionPlanStatus = "ACTIVE"
)

type SubscriptionStatus Uses

type SubscriptionStatus string
const (
    SubscriptionStatusApprovalPending SubscriptionStatus = "APPROVAL_PENDING"
    SubscriptionStatusApproved        SubscriptionStatus = "APPROVED"
    SubscriptionStatusActive          SubscriptionStatus = "ACTIVE"
    SubscriptionStatusSuspended       SubscriptionStatus = "SUSPENDED"
    SubscriptionStatusCancelled       SubscriptionStatus = "CANCELLED"
    SubscriptionStatusExpired         SubscriptionStatus = "EXPIRED"
)

type SubscriptionTransactionStatus Uses

type SubscriptionTransactionStatus string

Doc: https://developer.paypal.com/docs/api/subscriptions/v1/#definition-transaction

const (
    SubscriptionCaptureStatusCompleted         SubscriptionTransactionStatus = "COMPLETED"
    SubscriptionCaptureStatusDeclined          SubscriptionTransactionStatus = "DECLINED"
    SubscriptionCaptureStatusPartiallyRefunded SubscriptionTransactionStatus = "PARTIALLY_REFUNDED"
    SubscriptionCaptureStatusPending           SubscriptionTransactionStatus = "PENDING"
    SubscriptionCaptureStatusRefunded          SubscriptionTransactionStatus = "REFUNDED"
)

type SubscriptionTransactionsParams Uses

type SubscriptionTransactionsParams struct {
    SubscriptionId string
    StartTime      time.Time
    EndTime        time.Time
}

type SubscriptionTransactionsResponse Uses

type SubscriptionTransactionsResponse struct {
    Transactions []SubscriptionCaptureResponse `json:"transactions"`
    SharedListResponse
}

type TaxInfo Uses

type TaxInfo struct {
    TaxID     string `json:"tax_id,omitempty"`
    TaxIDType string `json:"tax_id_type,omitempty"`
}

TaxInfo used for orders.

type Taxes Uses

type Taxes struct {
    Percentage string `json:"percentage"`
    Inclusive  bool   `json:"inclusive"`
}

type TenureType Uses

type TenureType string
const (
    TenureTypeRegular TenureType = "REGULAR"
    TenureTypeTrial   TenureType = "TRIAL"
)

type TextField Uses

type TextField struct {
    Is string
    // contains filtered or unexported fields
}

TextField type

func (TextField) String Uses

func (d TextField) String() string

type ThirdPartyDetails Uses

type ThirdPartyDetails struct {
    Features []string `json:"features"`
}

type TimeField Uses

type TimeField struct {
    Is time.Time
    // contains filtered or unexported fields
}

TimeField type

func (TimeField) String Uses

func (d TimeField) String() string

String .

type TokenResponse Uses

type TokenResponse struct {
    RefreshToken string         `json:"refresh_token"`
    Token        string         `json:"access_token"`
    Type         string         `json:"token_type"`
    ExpiresIn    expirationTime `json:"expires_in"`
}

TokenResponse is for API response for the /oauth2/token endpoint

type Transaction Uses

type Transaction struct {
    Amount           *Amount         `json:"amount"`
    Description      string          `json:"description,omitempty"`
    ItemList         *ItemList       `json:"item_list,omitempty"`
    InvoiceNumber    string          `json:"invoice_number,omitempty"`
    Custom           string          `json:"custom,omitempty"`
    SoftDescriptor   string          `json:"soft_descriptor,omitempty"`
    RelatedResources []Related       `json:"related_resources,omitempty"`
    PaymentOptions   *PaymentOptions `json:"payment_options,omitempty"`
    NotifyURL        string          `json:"notify_url,omitempty"`
    OrderURL         string          `json:"order_url,omitempty"`
    Payee            *Payee          `json:"payee,omitempty"`
}

Transaction struct

type TransactionSearchRequest Uses

type TransactionSearchRequest struct {
    TransactionID               *string
    TransactionType             *string
    TransactionStatus           *string
    TransactionAmount           *string
    TransactionCurrency         *string
    StartDate                   time.Time
    EndDate                     time.Time
    PaymentInstrumentType       *string
    StoreID                     *string
    TerminalID                  *string
    Fields                      *string
    BalanceAffectingRecordsOnly *string
    PageSize                    *int
    Page                        *int
}

type TransactionSearchResponse Uses

type TransactionSearchResponse struct {
    TransactionDetails  []SearchTransactionDetails `json:"transaction_details"`
    AccountNumber       string                     `json:"account_number"`
    StartDate           JSONTime                   `json:"start_date"`
    EndDate             JSONTime                   `json:"end_date"`
    LastRefreshDatetime JSONTime                   `json:"last_refreshed_datetime"`
    Page                int                        `json:"page"`
    SharedListResponse
}

type UserAction Uses

type UserAction string
const (
    UserActionContinue     UserAction = "CONTINUE"
    UserActionSubscribeNow UserAction = "SUBSCRIBE_NOW"
)

type UserInfo Uses

type UserInfo struct {
    ID              string   `json:"user_id"`
    Name            string   `json:"name"`
    GivenName       string   `json:"given_name"`
    FamilyName      string   `json:"family_name"`
    Email           string   `json:"email"`
    Verified        bool     `json:"verified,omitempty,string"`
    Gender          string   `json:"gender,omitempty"`
    BirthDate       string   `json:"birthdate,omitempty"`
    ZoneInfo        string   `json:"zoneinfo,omitempty"`
    Locale          string   `json:"locale,omitempty"`
    Phone           string   `json:"phone_number,omitempty"`
    Address         *Address `json:"address,omitempty"`
    VerifiedAccount bool     `json:"verified_account,omitempty,string"`
    AccountType     string   `json:"account_type,omitempty"`
    AgeRange        string   `json:"age_range,omitempty"`
    PayerID         string   `json:"payer_id,omitempty"`
}

UserInfo struct

type VerifyWebhookResponse Uses

type VerifyWebhookResponse struct {
    VerificationStatus string `json:"verification_status,omitempty"`
}

VerifyWebhookResponse struct

type WebProfile Uses

type WebProfile struct {
    ID           string       `json:"id,omitempty"`
    Name         string       `json:"name"`
    Presentation Presentation `json:"presentation,omitempty"`
    InputFields  InputFields  `json:"input_fields,omitempty"`
    FlowConfig   FlowConfig   `json:"flow_config,omitempty"`
}

WebProfile represents the configuration of the payment web payment experience

https://developer.paypal.com/docs/api/payment-experience/

type Webhook Uses

type Webhook struct {
    ID         string             `json:"id"`
    URL        string             `json:"url"`
    EventTypes []WebhookEventType `json:"event_types"`
    Links      []Link             `json:"links"`
}

Webhook strunct

type WebhookEvent Uses

type WebhookEvent struct {
    ID              string    `json:"id"`
    CreateTime      time.Time `json:"create_time"`
    ResourceType    string    `json:"resource_type"`
    EventType       string    `json:"event_type"`
    Summary         string    `json:"summary,omitempty"`
    Resource        Resource  `json:"resource"`
    Links           []Link    `json:"links"`
    EventVersion    string    `json:"event_version,omitempty"`
    ResourceVersion string    `json:"resource_version,omitempty"`
}

WebhookEvent struct

type WebhookEventType Uses

type WebhookEventType struct {
    Name        string `json:"name"`
    Description string `json:"description"`
}

WebhookEventType struct

type WebhookField Uses

type WebhookField struct {
    Operation string      `json:"op"`
    Path      string      `json:"path"`
    Value     interface{} `json:"value"`
}

Package paypal imports 13 packages (graph) and is imported by 13 packages. Updated 2020-10-24. Refresh now. Tools for package owners.