Skip to main content

Payoneer Escrow

This is intended to be a clean, idiomatic client for the Payoneer Escrow API. This will handle generating the authenticated headers and constructing the properly nested request URI, as well as parsing any response JSON for you.

Installation

You can install using pip or from source.

pip

Installation via pip is as easy as any other Python package.

$ pip install payoneer-escrow-sdk

# Alternatively, add to your requirements file and install from there
$ echo 'payoneer-escrow-sdk' >> requirements.txt

$ pip install -r requirements.txt

Source

Download the payoneer-escrow-python source:

$ git clone https://github.com/Payoneer-Escrow/payoneer-escrow-python

$ cd payoneer-escrow-python

# Install the package
$ python setup.py install

Quickstart

This project’s GitHub repo contains example files to help you get going. To avoid any potential risk, these files are not included in the package installed via pip. example.py is recommended for all who are new to this SDK—it allows you to confirm your api credentials and shows example handling of an HTTPError encountered by a bad request. There is also an end-to-end goods milestone order in the examples/ directory to demonstrate use of the API with one of the more complicated order types.

# If you installed via pip, you will need to get the example file
$ curl https://raw.githubusercontent.com/Payoneer-Escrow/payoneer-escrow-python/master/example.py > example.py

# Replace the key and secret values with your own credentials
$ echo 'PAYONEER_ESCROW_API_KEY = "ENTER_YOUR_API_KEY_HERE"
PAYONEER_ESCROW_SECRET = "ENTER_YOUR_API_SECRET_HERE"' > api_credentials.py

$ python example.py

Usage

The Payoneer Escrow API is REST-ish and nested, so the client relies on chaining. We return an object (or array of objects) decoded from the JSON response, if possible.

from payoneer_escrow_sdk.client import Client

# `should_use_sandbox` is a boolean passed to Client, indicating which
# Payoneer Escrow environment should be used; default is Production.

client = Client('your-key', 'your-secret', should_use_sandbox)

# There are two top-level resources: accounts and shipmentcarriers
# Querying users and orders requires an account_id

client.accounts().all()
client.accounts().get(account_id)

client.shipmentcarriers().all()
client.shipmentcarriers().get(carrier_id)

# From accounts, we chain users, orders, bank accounts

client.accounts().users(account_id).all()
client.accounts().users(account_id).get(user_id)

client.accounts().orders(account_id).all()
client.accounts().orders(account_id).get(order_id)

client.accounts().bankaccounts(account_id).all()
client.accounts().bankaccounts(account_id).get(bank_account_id)

# From orders, many things chain: documents, notes, disputes, shipments,
# payment instructions, order events, and order ledgers

client.accounts().orders(account_id).documents(order_id).all()
client.accounts().orders(account_id).documents(order_id).get(document_id)

client.accounts().orders(account_id).notes(order_id).all()
client.accounts().orders(account_id).notes(order_id).get(note_id)

client.accounts().orders(account_id).disputes(order_id).all()
client.accounts().orders(account_id).disputes(order_id).get(dispute_id)

client.accounts().orders(account_id).shipments(order_id).all()
client.accounts().orders(account_id).shipments(order_id).get(shipment_id)

client.accounts().orders(account_id).paymentinstructions(order_id).all()

client.accounts().orders(account_id).orderevents(order_id).all()
client.accounts().orders(account_id).orderevents(order_id).get(event_id)

client.accounts().orders(account_id).orderledgers(order_id).all()
client.accounts().orders(account_id).orderledgers(order_id).get(ledger_entry_id)

# From disputes, further things chain: documents, notes, offers

client.accounts().orders(account_id).disputes(order_id).documents(
dispute_id).all()
client.accounts().orders(account_id).disputes(order_id).documents(
dispute_id).get(document_id)

client.accounts().orders(account_id).disputes(order_id).notes(
dispute_id).all()
client.accounts().orders(account_id).disputes(order_id).notes(
dispute_id).get(note_id)

client.accounts().orders(account_id).disputes(order_id).offers(
dispute_id).all()
client.accounts().orders(account_id).disputes(order_id).offers(
dispute_id).get(offer_id)

# From offers, documents and notes chain

client.accounts().orders(account_id).disputes(order_id).offers(
dispute_id).documents(offer_id).all()
client.accounts().orders(account_id).disputes(order_id).offers(
dispute_id).documents(offer_id).get(document_id)

client.accounts().orders(account_id).disputes(order_id).offers(
dispute_id).notes(offer_id).all()
client.accounts().orders(account_id).disputes(order_id).offers(
dispute_id).notes(offer_id).get(note_id)

Some of the resource endpoints support Create/Update POST operations, and this client aims to support those as well:

# Account-related
client.accounts().create(your_data)
client.accounts().update(account_id, your_data)

client.accounts().users(account_id).create(your_data)
client.accounts().users(account_id).update(user_id, your_data)


# Authenticate a URI for display in a lightbox
client.accounts().users(account_id).authentications(user_id).create(your_data)


# Order-related
client.accounts().orders(account_id).create(your_data)
client.accounts().orders(account_id).update(order_id, your_data)

client.accounts().orders(account_id).documents(order_id).create(your_data)

client.accounts().orders(account_id).notes(order_id).create(your_data)

client.accounts().orders(account_id).shipments(order_id).create(your_data)


# Dispute-related
client.accounts().orders(account_id).disputes(order_id).create(your_data)

client.accounts().orders(account_id).disputes(order_id).documents(
dispute_id).create(your_data)

client.accounts().orders(account_id).disputes(order_id).notes(
dispute_id).create(your_data)

client.accounts().orders(account_id).disputes(order_id).offers(
dispute_id).create(your_data)
client.accounts().orders(account_id).disputes(order_id).offers(
dispute_id).update(offer_id, your_data)

client.accounts().orders(account_id).disputes(order_id).offers(
dispute_id).documents(offer_id).create(your_data)

client.accounts().orders(account_id).disputes(order_id).offers(
dispute_id).notes(offer_id).create(your_data)

Contributing

  1. Fork it

  2. Create your feature branch (git checkout -b my-new-feature)

  3. Commit your changes (git commit -am 'Add some feature')

  4. Push to the branch (git push origin my-new-feature)

  5. Create new Pull Request

Metadata

Release files for payoneer-escrow-sdk 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for payoneer-escrow-sdk 0.1.0
File Size Uploaded
payoneer-escrow-sdk-0.1.0.tar.gz 8.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for payoneer-escrow-sdk 0.1.0
File Interpreter ABI Platform
payoneer_escrow_sdk-0.1.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 24.1 kB

Release files / payoneer-escrow-sdk-0.1.0.tar.gz

Download URL payoneer-escrow-sdk-0.1.0.tar.gz
Size 8.2 kB
Tags Source
SHA-256 checksum
How to use checksums
3967cc171a7c2a2511f2eded62f40f043da05b45ef41bb5af7e5e8592ffe140e
BLAKE2b-256 checksum
How to use checksums
d278ebd1c01d8eafa9ec64637bb68c0f4392ebaec0fec7e2a7ca595f0631d88c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / payoneer_escrow_sdk-0.1.0-py2.py3-none-any.whl

Download URL payoneer_escrow_sdk-0.1.0-py2.py3-none-any.whl
Size 15.9 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
89ea320fa92f7e5107867b637d59da7e392d12c1b3a1593c3b2ee0df5930764d
BLAKE2b-256 checksum
How to use checksums
c7afc9dd1b120995268ff1bcd214775504974076bb8759786c47b48cf3d99070
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page