Purpose, details and documents

The purpose of fund decides the trade details you send and the documents Fincra needs

purposeOfFund Does three things on a China payout. It must come from the list below. It selects the shape of additionalPayoutDetails. It sets the documents that Fincra needs before it pays.

Read your purpose in the table, then build the two things in the row names.

Every purpose CNY accepts

purposeOfFundadditionalPayoutDetailsDocuments
payroll_salarySalarypayment_service_agreement, payroll_schedule
employee_payrollSalarypayment_service_agreement, payroll_schedule
family_supportSalaryevidence_of_relationship_to_beneficiary
family_or_living_expenseSalaryevidence_of_relationship_to_beneficiary
personal_transferSalarycurrency_exchange_agreement
goods_purchaseOrdersinvoice
goods_tradeOrdersinvoice
payment_for_goodsOrdersinvoice
return_of_export_tradeOrdersinvoice
merchant_settlementOrdersmerchant_agreement
services_paymentOrdersservice_contract
services_tradeOrdersservice_contract
payment_for_servicesOrdersservice_contract
professional_servicesOrdersservice_contract
information_servicesOrdersservice_contract
brokerage_servicesOrdersservice_contract
transportation_servicesOrdersservice_contract
construction_servicesOrdersconstruction_contract
advertising_marketingOrdersadvertising_contract_award_letter
software_purchaseOrderspurchase_agreement

Any other purpose returns purposeOfFund is not supported for CNY/CNH payouts.

The salary shape

Use it for the five salary and family purposes.

{
  "additionalPayoutDetails": {
    "payerOccupation": "information_technology",
    "payerIndustry": "software_development"
  }
}

Both fields are required. Pick payerOccupation from the occupation list and payerIndustry from the industry list.

Do not send orders with a salary purpose. The endpoint rejects the request.

The orders shape

Use it for the fifteen trade purposes. Send between 1 and 10 orders.

{
  "additionalPayoutDetails": {
    "orders": [
      {
        "orderedAt": 1784544600000,
        "item": { "name": "LED display panels", "quantity": 250, "category": "electronics" },
        "platform": { "name": "Alibaba", "url": "https://hq-electronics.en.alibaba.com" },
        "logistics": { "company": "SF Express", "trackingNumber": "SF1234567890" }
      }
    ]
  }
}
FieldRequiredRules
orderedAtYesAn ISO 8601 date, or the epoch time in milliseconds.
item.nameYesThe goods or the service.
item.quantityYesA whole number from 1 to 999.
item.categoryNoAn empty text is allowed.
platform.name or platform.urlYesplatform is required. One of the two must hold a value.
logistics.companyNoThe shipping company.
logistics.trackingNumberNoThe tracking number.
amountSee belowA positive number, in CNY.

Do not send a trade type. Fincra derives it from the purpose.

The amount rule

Every order amount is in CNY. Send CNY whatever the source currency of the payout. The amounts describe what the counterparty receives, not what your wallet is debited.

amount is optional on a single order, because the payout amount already covers it.

amount is required on every order when you send more than one. The sum must always equal the payout amount in CNY, within half a cent.

🚧

A conversion checks the sum late

On a same-currency payout, Fincra checks the sum at once and returns The sum of order amounts (<total>) must equal the payout amount (<amount>).

On a conversion, Fincra checks the sum after it resolves the quote. The request passes, then the payout fails with The sum of order amounts (<total>) must equal the amount the beneficiary receives (<amount> <currency>). Calculate the order amounts from the destination amount of the quote, not from the source amount.

Send the documents

Send each document as one entry in the files array.

FieldRequired
files[n][documentType]Yes
files[n][file]Yes

Fincra subtracts the types you sent from the types the purpose needs.

ResultStatusWhat happens
Nothing missingprocessingFincra sends the payout to the partner.
Something missingdocuments_requiredFincra holds the payout. documentsRequired names each type.

Upload a missing document

Call POST /payouts/documents-upload while the status is documents_required. Upload one document for each call.

curl -X POST https://api.fincra.com/payouts/documents-upload \
  -H "api-key: $FINCRA_API_KEY" \
  -F "reference=PO-8f3a2c1d" \
  -F "type=payroll_schedule" \
  -F "name=July 2026 payroll schedule" \
  -F "files[file][email protected]"
import os, requests

res = requests.post(
    "https://api.fincra.com/payouts/documents-upload",
    headers={"api-key": os.environ["FINCRA_API_KEY"]},
    data={
        "reference": "PO-8f3a2c1d",
        "type": "payroll_schedule",
        "name": "July 2026 payroll schedule",
    },
    files={"files[file]": open("payroll-schedule-july.pdf", "rb")},
)

When the last document arrives, Fincra moves the payout to processing and sends it to the partner.

These upload errors return 422.

MessageCause
Payout reference not foundThe reference does not exist.
Document already uploaded for this payoutThe payout has every document.
Document not required for this payoutThe purpose needs no document.
Invalid document type. Allowed types: <list>type is not a known type.
Document type '<type>' is not required for this payout. Required types: <list>The purpose does not need this type.
Document of type '<type>' has already been uploaded for this payoutYou sent this type before.

Next: Errors.


Did this page help you?