Shell Python Node PHP C# Ruby

Activation Options

There's a few ways to activate a new account for payouts. Each method has its pros and cons, and varies in levels of built-in KYC. Use the method that best suits your use case and KYC requirements.

Built-in Verification with Secure Inputs

API Activation Example

curl "https://api.payload.co/customers" \
    -u secret_key_3bW9JMZtPVDOfFNzwRdfE: \
    -d "name=Customer Name" \
    -d "payment_methods[0][type]=bank_account" \
    -d "payment_methods[0][bank_account][account_number]=1234567890" \
    -d "payment_methods[0][bank_account][routing_number]=021000021" \
    -d "payment_methods[0][bank_account][account_type]=checking" \
    -d "payment_methods[0][transfer_type]=receive-only"
customer = pl.Customer.create(
    name='Customer name',
    payment_methods=[pl.BankAccount(
        account_number='1234567890',
        routing_number='021000021',
        account_type='checking',
        transfer_type='receive-only'
    )]
)
<?php
    $customer = Payload\Customer::create(array(
        'name' => 'Customer Name',
        'payment_methods'=>[new Payload\PaymentMethod([
            'type'=> 'bank_account',
            'bank_account'=>[
                'account_number'=>'1234567890',
                'routing_number'=> '021000021',
                'account_type' => 'checking',
                'transfer_type' => 'receive-only'
            ]
        ])]
    ));
?>
const customer = await pl.Customer.create({
    name: 'Customer Name',
    payment_methods: [pl.BankAccount({
        account_number: '1234567890',
        routing_number: '021000021',
        account_type: 'checking',
        transfer_type: 'receive-only'
    })]
})
var customer = await pl.Customer.CreateAsync(new {
    name = "Customer Name",
    payment_methods = new [] {
        new pl.BankAccount(new {
            account_number = "1234567890",
            routing_number = "021000021",
            account_type = "checking",
            transfer_type = "receive-only"
        })
    }
});
customer = Payload::Customer.create(
    name: 'Customer Name',
    payment_methods: [
        Payload::BankAccount.new(
            account_number: '1234567890',
            routing_number: '021000021',
            account_type: 'checking',
            transfer_type: 'receive-only'
        )
    ]
)

New accounts can be added for payouts using the APIs directly or the Secure Input library. This method provides the least amount of automatic KYC and only validates the account number and routing number. It's recommended to perform external validation on the account holder.

See verify with Secure Input

Activate with Plaid

Accounts can be linked using Payload's plaid integration. By using Plaid to connect accounts, the account number, routing number, and account ownership will be validated.

See linking with Plaid

Generate a branded secure activation link for adding a new account for accepting payouts. This option requires the least amount of integration lift and is also integrated with the standalone payouts dashboard module. This method utilizes Plaid for account and KYC validation.

See secure payout activation links