Upload a proof-of-authorization document for a payout.
Uploads a document as proof of authorization for a payout. Uploading again adds another entry to documents rather than replacing the previous one.
ReturnsExpand Collapse
class PayoutV1: …
data: Data
config: DataConfig
external_id: str
Unique identifier for the payout in your database. This value must be unique across all payouts.
payment_date: date
The desired date on which the payment should be occur. For payouts, this means the date you want the funds to be sent from your bank account.
Details about the current status of the payout.
status_history: List[DataStatusHistory]
History of the status changes for the payout.
reason: Literal["insufficient_funds", "closed_bank_account", "invalid_bank_account", 24 more]
A machine-readable identifier for the specific status, useful for programmatic handling.
customer_details: Optional[CustomerDetailsV1]
Information about the customer associated with the payout.
documents: Optional[List[DataDocument]]
Documents uploaded for this payout (e.g. proof of authorization), in the order they were uploaded.
effective_at: Optional[datetime]
The actual date on which the payment occurred. For payouts, this is the date the funds were sent from your bank account.
metadata: Optional[Dict[str, str]]
Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the payout in a structured format.
paykey_details: Optional[PaykeyDetailsV1]
processed_at: Optional[datetime]
The time the payout was processed by Straddle and originated to the payment rail.
response_type: Literal["object", "array", "error", "none"]
Indicates the structure of the returned content.
- "object" means the
datafield contains a single JSON object. - "array" means the
datafield contains an array of objects. - "error" means the
datafield contains an error object with details of the issue. - "none" means no data is returned.
Upload a proof-of-authorization document for a payout.
import os
from straddle import Straddle
client = Straddle(
api_key=os.environ.get("STRADDLE_API_KEY"), # This is the default and can be omitted
)
payout_v1 = client.payouts.upload_authorization_document(
id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
file=b"Example data",
)
print(payout_v1.data){
"data": {
"id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"amount": 10000,
"config": {
"auto_hold": true,
"auto_hold_message": "auto_hold_message",
"sandbox_outcome": "standard"
},
"currency": "currency",
"description": "description",
"device": {
"ip_address": "192.168.1.1"
},
"external_id": "external_id",
"funding_ids": [
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
],
"has_resubmit": true,
"is_refund": true,
"is_resubmit": true,
"paykey": "paykey",
"payment_date": "2019-12-27",
"status": "created",
"status_details": {
"changed_at": "2019-12-27T18:11:19.117Z",
"message": "Payment successfully created and awaiting validation.",
"reason": "insufficient_funds",
"source": "system",
"code": null
},
"status_history": [
{
"changed_at": "2019-12-27T18:11:19.117Z",
"message": "Payment successfully created and awaiting validation.",
"reason": "insufficient_funds",
"source": "watchtower",
"status": "created",
"code": null
}
],
"trace_ids": {
"foo": "string"
},
"created_at": "2019-12-27T18:11:19.117Z",
"customer_details": {
"id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"customer_type": "individual",
"email": "ron@swanson.com",
"name": "Ron Swanson",
"phone": "+1234567890"
},
"documents": [
{
"document_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"document_name": "document_name",
"document_size": 0,
"document_type": "payment_authorization",
"uploaded_at": "2019-12-27T18:11:19.117Z"
}
],
"effective_at": "2019-12-27T18:11:19.117Z",
"metadata": {
"foo": "string"
},
"paykey_details": {
"id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"customer_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"label": "Bank of America ****1234",
"balance": 0
},
"payment_rail": "ach",
"processed_at": "2019-12-27T18:11:19.117Z",
"related_payments": [
{
"id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"payment_type": "charge",
"relationship": "original"
}
],
"updated_at": "2019-12-27T18:11:19.117Z"
},
"meta": {
"api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"api_request_timestamp": "2019-12-27T18:11:19.117Z"
},
"response_type": "object"
}Returns Examples
{
"data": {
"id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"amount": 10000,
"config": {
"auto_hold": true,
"auto_hold_message": "auto_hold_message",
"sandbox_outcome": "standard"
},
"currency": "currency",
"description": "description",
"device": {
"ip_address": "192.168.1.1"
},
"external_id": "external_id",
"funding_ids": [
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
],
"has_resubmit": true,
"is_refund": true,
"is_resubmit": true,
"paykey": "paykey",
"payment_date": "2019-12-27",
"status": "created",
"status_details": {
"changed_at": "2019-12-27T18:11:19.117Z",
"message": "Payment successfully created and awaiting validation.",
"reason": "insufficient_funds",
"source": "system",
"code": null
},
"status_history": [
{
"changed_at": "2019-12-27T18:11:19.117Z",
"message": "Payment successfully created and awaiting validation.",
"reason": "insufficient_funds",
"source": "watchtower",
"status": "created",
"code": null
}
],
"trace_ids": {
"foo": "string"
},
"created_at": "2019-12-27T18:11:19.117Z",
"customer_details": {
"id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"customer_type": "individual",
"email": "ron@swanson.com",
"name": "Ron Swanson",
"phone": "+1234567890"
},
"documents": [
{
"document_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"document_name": "document_name",
"document_size": 0,
"document_type": "payment_authorization",
"uploaded_at": "2019-12-27T18:11:19.117Z"
}
],
"effective_at": "2019-12-27T18:11:19.117Z",
"metadata": {
"foo": "string"
},
"paykey_details": {
"id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"customer_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"label": "Bank of America ****1234",
"balance": 0
},
"payment_rail": "ach",
"processed_at": "2019-12-27T18:11:19.117Z",
"related_payments": [
{
"id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"payment_type": "charge",
"relationship": "original"
}
],
"updated_at": "2019-12-27T18:11:19.117Z"
},
"meta": {
"api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"api_request_timestamp": "2019-12-27T18:11:19.117Z"
},
"response_type": "object"
}