You can use the APIs below to interface with Xendit's PayoutApi
.
To start using the API, you need to configure the secret key and initiate the client instance.
import time
import xendit
from xendit.apis import PayoutApi
# See configuration.py for a list of all supported configuration parameters.
xendit.set_api_key('XENDIT API KEY')
# Enter a context with an instance of the API client
api_client = xendit.ApiClient()
# Create an instance of the API class
api_instance = PayoutApi(api_client)
All URIs are relative to https://api.xendit.co
Method | HTTP request | Description |
---|---|---|
create_payout | POST /v2/payouts | API to send money at scale to bank accounts & eWallets |
get_payout_by_id | GET /v2/payouts/{id} | API to fetch the current status, or details of the payout |
get_payout_channels | GET /payouts_channels | API providing the current list of banks and e-wallets we support for payouts for both regions |
get_payouts | GET /v2/payouts | API to retrieve all matching payouts with reference ID |
cancel_payout | POST /v2/payouts/{id}/cancel | API to cancel requested payouts that have not yet been sent to partner banks and e-wallets. Cancellation is possible if the payout has not been sent out via our partner and when payout status is ACCEPTED. |
GetPayouts200ResponseDataInner create_payout(idempotency_key)
API to send money at scale to bank accounts & eWallets
Name | Value |
---|---|
Function Name | create_payout |
Request Parameters | CreatePayoutRequestParams |
Return Type | GetPayouts200ResponseDataInner |
Name | Type | Required | Default |
---|---|---|---|
idempotency_key | str | ☑️ | |
for_user_id | str | ||
create_payout_request | CreatePayoutRequest |
import time
import xendit
from xendit.apis import PayoutApi
from xendit.payout.model.create_payout_request import CreatePayoutRequest
from xendit.payout.model.get_payouts200_response_data_inner import GetPayouts200ResponseDataInner
from xendit.payout.model.error import Error
from pprint import pprint
# See configuration.py for a list of all supported configuration parameters.
xendit.set_api_key('XENDIT API KEY')
# Enter a context with an instance of the API client
api_client = xendit.ApiClient()
# Create an instance of the API class
api_instance = PayoutApi(api_client)
idempotency_key = "DISB-1234" # str | A unique key to prevent duplicate requests from pushing through our system. No expiration.
for_user_id = "5f9a3fbd571a1c4068aa40ce" # str | The sub-account user-id that you want to make this transaction for. This header is only used if you have access to xenPlatform. See xenPlatform for more information.
create_payout_request = {
"reference_id" : "DISB-001",
"currency" : "PHP",
"channel_code" : "PH_BDO",
"channel_properties" : {
"account_holder_name" : "John Doe",
"account_number" : "000000"
},
"amount" : 90000,
"description" : "Test Bank Payout",
"type" : "DIRECT_DISBURSEMENT"
} # CreatePayoutRequest
# example passing only required values which don't have defaults set
try:
# API to send money at scale to bank accounts & eWallets
api_response = api_instance.create_payout(idempotency_key)
pprint(api_response)
except xendit.XenditSdkException as e:
print("Exception when calling PayoutApi->create_payout: %s\n" % e)
# example passing only required values which don't have defaults set
# and optional values
try:
# API to send money at scale to bank accounts & eWallets
api_response = api_instance.create_payout(idempotency_key, for_user_id=for_user_id, create_payout_request=create_payout_request)
pprint(api_response)
except xendit.XenditSdkException as e:
print("Exception when calling PayoutApi->create_payout: %s\n" % e)
GetPayouts200ResponseDataInner get_payout_by_id(id)
API to fetch the current status, or details of the payout
Name | Value |
---|---|
Function Name | get_payout_by_id |
Request Parameters | GetPayoutByIdRequestParams |
Return Type | GetPayouts200ResponseDataInner |
Name | Type | Required | Default |
---|---|---|---|
id | str | ☑️ | |
for_user_id | str |
import time
import xendit
from xendit.apis import PayoutApi
from xendit.payout.model.get_payouts200_response_data_inner import GetPayouts200ResponseDataInner
from xendit.payout.model.error import Error
from pprint import pprint
# See configuration.py for a list of all supported configuration parameters.
xendit.set_api_key('XENDIT API KEY')
# Enter a context with an instance of the API client
api_client = xendit.ApiClient()
# Create an instance of the API class
api_instance = PayoutApi(api_client)
id = "disb-7baa7335-a0b2-4678-bb8c-318c0167f332" # str | Payout id returned from the response of /v2/payouts
for_user_id = "5f9a3fbd571a1c4068aa40ce" # str | The sub-account user-id that you want to make this transaction for. This header is only used if you have access to xenPlatform. See xenPlatform for more information.
# example passing only required values which don't have defaults set
try:
# API to fetch the current status, or details of the payout
api_response = api_instance.get_payout_by_id(id)
pprint(api_response)
except xendit.XenditSdkException as e:
print("Exception when calling PayoutApi->get_payout_by_id: %s\n" % e)
# example passing only required values which don't have defaults set
# and optional values
try:
# API to fetch the current status, or details of the payout
api_response = api_instance.get_payout_by_id(id, for_user_id=for_user_id)
pprint(api_response)
except xendit.XenditSdkException as e:
print("Exception when calling PayoutApi->get_payout_by_id: %s\n" % e)
[Channel] get_payout_channels()
API providing the current list of banks and e-wallets we support for payouts for both regions
Name | Value |
---|---|
Function Name | get_payout_channels |
Request Parameters | GetPayoutChannelsRequestParams |
Return Type | [Channel] |
Name | Type | Required | Default |
---|---|---|---|
currency | str | ||
channel_category | [ChannelCategory] | ||
channel_code | str | ||
for_user_id | str |
import time
import xendit
from xendit.apis import PayoutApi
from xendit.payout.model.error import Error
from xendit.payout.model.channel_category import ChannelCategory
from xendit.payout.model.channel import Channel
from pprint import pprint
# See configuration.py for a list of all supported configuration parameters.
xendit.set_api_key('XENDIT API KEY')
# Enter a context with an instance of the API client
api_client = xendit.ApiClient()
# Create an instance of the API class
api_instance = PayoutApi(api_client)
currency = "IDR, PHP" # str | Filter channels by currency from ISO-4217 values
channel_category = [
ChannelCategory("BANK"),
] # [ChannelCategory] | Filter channels by category
channel_code = "ID_MANDIRI, PH_GCASH" # str | Filter channels by channel code, prefixed by ISO-3166 country code
for_user_id = "5f9a3fbd571a1c4068aa40ce" # str | The sub-account user-id that you want to make this transaction for. This header is only used if you have access to xenPlatform. See xenPlatform for more information.
# example passing only required values which don't have defaults set
# and optional values
try:
# API providing the current list of banks and e-wallets we support for payouts for both regions
api_response = api_instance.get_payout_channels(currency=currency, channel_category=channel_category, channel_code=channel_code, for_user_id=for_user_id)
pprint(api_response)
except xendit.XenditSdkException as e:
print("Exception when calling PayoutApi->get_payout_channels: %s\n" % e)
GetPayouts200Response get_payouts(reference_id)
API to retrieve all matching payouts with reference ID
Name | Value |
---|---|
Function Name | get_payouts |
Request Parameters | GetPayoutsRequestParams |
Return Type | GetPayouts200Response |
Name | Type | Required | Default |
---|---|---|---|
reference_id | str | ☑️ | |
limit | float | ||
after_id | str | ||
before_id | str | ||
for_user_id | str |
import time
import xendit
from xendit.apis import PayoutApi
from xendit.payout.model.error import Error
from xendit.payout.model.get_payouts200_response import GetPayouts200Response
from pprint import pprint
# See configuration.py for a list of all supported configuration parameters.
xendit.set_api_key('XENDIT API KEY')
# Enter a context with an instance of the API client
api_client = xendit.ApiClient()
# Create an instance of the API class
api_instance = PayoutApi(api_client)
reference_id = "DISB-123" # str | Reference_id provided when creating the payout
limit = 10 # float | Number of records to fetch per API call
after_id = "disb-7baa7335-a0b2-4678-bb8c-318c0167f332" # str | Used to fetch record after this payout unique id
before_id = "disb-7baa7335-a0b2-4678-bb8c-318c0167f332" # str | Used to fetch record before this payout unique id
for_user_id = "5f9a3fbd571a1c4068aa40ce" # str | The sub-account user-id that you want to make this transaction for. This header is only used if you have access to xenPlatform. See xenPlatform for more information.
# example passing only required values which don't have defaults set
try:
# API to retrieve all matching payouts with reference ID
api_response = api_instance.get_payouts(reference_id)
pprint(api_response)
except xendit.XenditSdkException as e:
print("Exception when calling PayoutApi->get_payouts: %s\n" % e)
# example passing only required values which don't have defaults set
# and optional values
try:
# API to retrieve all matching payouts with reference ID
api_response = api_instance.get_payouts(reference_id, limit=limit, after_id=after_id, before_id=before_id, for_user_id=for_user_id)
pprint(api_response)
except xendit.XenditSdkException as e:
print("Exception when calling PayoutApi->get_payouts: %s\n" % e)
GetPayouts200ResponseDataInner cancel_payout(id)
API to cancel requested payouts that have not yet been sent to partner banks and e-wallets. Cancellation is possible if the payout has not been sent out via our partner and when payout status is ACCEPTED.
Name | Value |
---|---|
Function Name | cancel_payout |
Request Parameters | CancelPayoutRequestParams |
Return Type | GetPayouts200ResponseDataInner |
Name | Type | Required | Default |
---|---|---|---|
id | str | ☑️ | |
for_user_id | str |
import time
import xendit
from xendit.apis import PayoutApi
from xendit.payout.model.get_payouts200_response_data_inner import GetPayouts200ResponseDataInner
from xendit.payout.model.error import Error
from pprint import pprint
# See configuration.py for a list of all supported configuration parameters.
xendit.set_api_key('XENDIT API KEY')
# Enter a context with an instance of the API client
api_client = xendit.ApiClient()
# Create an instance of the API class
api_instance = PayoutApi(api_client)
id = "disb-7baa7335-a0b2-4678-bb8c-318c0167f332" # str | Payout id returned from the response of /v2/payouts
for_user_id = "5f9a3fbd571a1c4068aa40ce" # str | The sub-account user-id that you want to make this transaction for. This header is only used if you have access to xenPlatform. See xenPlatform for more information.
# example passing only required values which don't have defaults set
try:
# API to cancel requested payouts that have not yet been sent to partner banks and e-wallets. Cancellation is possible if the payout has not been sent out via our partner and when payout status is ACCEPTED.
api_response = api_instance.cancel_payout(id)
pprint(api_response)
except xendit.XenditSdkException as e:
print("Exception when calling PayoutApi->cancel_payout: %s\n" % e)
# example passing only required values which don't have defaults set
# and optional values
try:
# API to cancel requested payouts that have not yet been sent to partner banks and e-wallets. Cancellation is possible if the payout has not been sent out via our partner and when payout status is ACCEPTED.
api_response = api_instance.cancel_payout(id, for_user_id=for_user_id)
pprint(api_response)
except xendit.XenditSdkException as e:
print("Exception when calling PayoutApi->cancel_payout: %s\n" % e)