/paypal

Golang client for PayPal REST API

Primary LanguageGoMIT LicenseMIT

Go Report Card Build Status Godoc

Go client for PayPal REST API

Coverage

  • POST /v1/oauth2/token
  • POST /v1/identity/openidconnect/tokenservice
  • GET /v1/identity/openidconnect/userinfo/?schema=SCHEMA
  • POST /v1/payments/payouts
  • GET /v1/payments/payouts/ID
  • GET /v1/payments/payouts-item/ID
  • POST /v1/payments/payouts-item/ID/cancel
  • GET /v1/payment-experience/web-profiles
  • POST /v1/payment-experience/web-profiles
  • GET /v1/payment-experience/web-profiles/ID
  • PUT /v1/payment-experience/web-profiles/ID
  • DELETE /v1/payment-experience/web-profiles/ID
  • GET /v2/payments/authorizations/ID
  • POST /v2/payments/authorizations/ID/capture
  • POST /v2/payments/authorizations/ID/void
  • POST /v2/payments/authorizations/ID/reauthorize
  • GET /v1/payments/sale/ID
  • POST /v1/payments/sale/ID/refund
  • GET /v2/payments/refund/ID
  • POST /v1/reporting/transactions #Vault
  • POST /v1/vault/credit-cards
  • DELETE /v1/vault/credit-cards/ID
  • PATCH /v1/vault/credit-cards/ID
  • GET /v1/vault/credit-cards/ID
  • GET /v1/vault/credit-cards #Checkout
  • POST /v2/checkout/orders
  • GET /v2/checkout/orders/ID
  • PATCH /v2/checkout/orders/ID
  • POST /v2/checkout/orders/ID/authorize
  • POST /v2/checkout/orders/ID/capture #Billing plans (payments)
  • GET /v1/payments/billing-plans
  • POST /v1/payments/billing-plans
  • PATCH /v1/payments/billing-plans/ID
  • POST /v1/payments/billing-agreements
  • POST /v1/payments/billing-agreements/TOKEN/agreement-execute #Notifications
  • POST /v1/notifications/webhooks
  • GET /v1/notifications/webhooks
  • GET /v1/notifications/webhooks/ID
  • PATCH /v1/notifications/webhooks/ID
  • DELETE /v1/notifications/webhooks/ID
  • POST /v1/notifications/verify-webhook-signature #Products (Catalog)
  • POST /v1/catalogs/products
  • PATCH /v1/catalogs/products/ID
  • GET /v1/catalogs/products/ID
  • GET /v1/catalogs/products #Billing Plans (Subscriptions)
  • POST /v1/billing/plans
  • PATCH /v1/billing/plans/ID
  • GET /v1/billing/plans/ID
  • GET /v1/billing/plans
  • POST /v1/billing/plans/ID/activate
  • POST /v1/billing/plans/ID/deactivate
  • POST /v1/billing/plans/ID/update-pricing-schemes #Subscriptions
  • POST /v1/billing/subscriptions
  • PATCH /v1/billing/subscriptions/ID
  • GET /v1/billing/subscriptions/ID
  • POST /v1/billing/subscriptions/ID/activate
  • POST /v1/billing/subscriptions/ID/cancel
  • POST /v1/billing/subscriptions/ID/capture
  • POST /v1/billing/subscriptions/ID/suspend
  • GET /v1/billing/subscriptions/ID/transactions

Missing endpoints

It is possible that some endpoints are missing in this SDK Client, but you can use built-in paypal functions to perform a request: NewClient -> NewRequest -> SendWithAuth

Usage

// If using Go Modules
// import "github.com/plutov/paypal/v3" 
import "github.com/plutov/paypal"

// Create a client instance
c, err := paypal.NewClient("clientID", "secretID", paypal.APIBaseSandBox)
c.SetLog(os.Stdout) // Set log to terminal stdout

accessToken, err := c.GetAccessToken()

How to Contribute

  • Fork a repository
  • Add/Fix something
  • Check that tests are passing
  • Create PR

Current contributors:

Tests

  • Unit tests: go test -v ./...
  • Integration tests: go test -tags=integration