Skip to main content
Payouts on behalf of (POBO) pays fiat to recipients that are separate entities from you, such as your suppliers, contractors, or partners. You do not need to hold a local bank account yourself: once the paying entity passes KYC review, Cobo opens a virtual account (VA) in that entityโ€™s own name, payouts are sent from that VA, and the recipient sees that entity itself as the remitter. You instruct the payout from your Cobo balance, and the funds are converted and transferred from that VA to the recipientโ€™s bank account. Two reviews must pass before you can create a POBO payout, and they are independent of each other:
  • KYC review: verifies the paying entityโ€™s identity and who ultimately controls it. On approval, Cobo opens a VA in that entityโ€™s name. Submit it separately for each paying entity.
  • Destination review: submit the recipient bank accountโ€™s transfer details. Each recipient bank account is reviewed separately.
Both can be submitted through the API. Submission through the Payments App web interface is expected in October 2026. This guide shows the POBO implementation sequence with the Cobo WaaS 2.0 Python SDK (cobo_waas2): SDK initialization, KYC document upload and submission (the payer side), recipient bank account document upload and destination creation (the payee side), and Off-ramp payout creation. For concept details and operation-specific schemas, use the related guides and API references linked from each section.

Prerequisites

  • You have completed the Python SDK quickstart.
  • You have the API private key required to initialize the SDK.
  • You have a Payments API host, such as https://api.dev.cobo.com/v2 for Development.
  • You have prepared the KYC documents and bank account documents required for the paying entity and the payout destination.

Configure the Python SDK

Initialize PaymentApi with your API private key and Payments API host.

Integration workflow

POBO integration flow: a one-time setup registering the entity you pay from and the recipient bank account, then a per-payout loop
  1. Upload KYC and bank account documents with Upload file v2 and save the returned file_id values.
  2. Submit KYC information with Submit merchant KYC.
  3. Create a bank-account destination with Create destination. For destination concepts and review requirements, see Destinations.
  4. Create an Off-ramp payout with Create payout. For payout behavior, see Off-ramp.

Upload KYC and bank account documents

This step uploads every document the next two steps need and collects a file_id for each: the company and personal documents referenced when you submit KYC information, and the bank account documents referenced when you create a bank-account destination. Read each local document, encode it as Base64, upload it with upload_payment_file_v2, and save the file_id from the response. See Upload file v2 for the request and response schema.

Submit KYC information

KYC (Know Your Customer) verifies the entity the payout comes from: that it is real, who ultimately controls it, and whether it can pay out through Cobo. Call submit_merchant_kyc to submit KYC information. The example submits:
  • B2B entity information
  • Company attachments
  • Legal representative information
  • Ultimate beneficial owner information
See Submit merchant KYC for the complete schema.
Contact Cobo after you submit. Cobo starts the KYC review once notified, and you can only create payouts after it passes.

Create a bank-account destination

Call create_destination to create the destination bank account for a payout. Key settings:
  • Account details: account number (account_number), SWIFT code, IBAN, currency (USD), and account holder name (beneficiary_name).
  • Bank details: bank name, branch code (bank_branch_code), and the bankโ€™s address, country, province, and city.
  • Payment method and holder type: set BankAccountPaymentMethod.SWIFT and BankAccountHolderType.COMPANY.
See Create destination for the complete schema.
Contact Cobo after you submit. Cobo starts the KYC review once notified, and you can only create payouts after it passes.

Create an Off-ramp payout

Call create_payout to submit the payout request. Key settings:
  • Idempotency: generate a unique request_id.
  • Payout channel: set payout_channel to PayoutChannel.OFFRAMP.
  • Source account: provide the account the funds come from.
  • Destination account: reference the destination bank account in recipient_info.bank_account_id.
See Create payout for the complete schema.