Package: payoneer-escrow-sdk
Payoneer EscrowThis is intended to be a clean, idiomatic client for thePayoneer 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.InstallationYou can install usingpipor fromsource.pipInstallation via pip is as easy as any other Python package.$pipinstallpayoneer-escrow-sdk# Alternatively, add to your requirements file and install from there$echo'payoneer-escrow-sdk'>>requirements.txt$pipinstall-rrequirements.txtSourceDownload the payoneer-escrow-python source:$gitclonehttps://github.com/Payoneer-Escrow/payoneer-escrow-python$cdpayoneer-escrow-python# Install the package$pythonsetup.pyinstallQuickstartThis 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
viapip.example.pyis recommended for all who are new to this SDK—it
allows you to confirm your api credentials and shows example handling of anHTTPErrorencountered by a bad request. There is also an end-to-end goods
milestone order  in theexamples/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$curlhttps://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$pythonexample.pyUsageThe 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.frompayoneer_escrow_sdk.clientimportClient# `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_idclient.accounts().all()client.accounts().get(account_id)client.shipmentcarriers().all()client.shipmentcarriers().get(carrier_id)# From accounts, we chain users, orders, bank accountsclient.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 ledgersclient.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, offersclient.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 chainclient.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/UpdatePOSToperations, and
this client aims to support those as well:# Account-relatedclient.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 lightboxclient.accounts().users(account_id).authentications(user_id).create(your_data)# Order-relatedclient.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-relatedclient.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)ContributingFork itCreate your feature branch (git checkout-bmy-new-feature)Commit your changes (git commit-am'Add some feature')Push to the branch (git push originmy-new-feature)Create new Pull Request