---
updatedAt: 2025-09-23T21:08:20.000Z
agentTools:
  projectIndex: https://developers.berkeleypayment.com/llms.txt
---

# Visa Direct Payments

![161](https://files.readme.io/be0c6a3-Visa_direct_payment.png "Visa_direct_payment.png")

API Flow

Step 1: Create Cardholder if not exist yet

```json
POST {{domain}}/api/v1/card_issuing/cardholders
{
    "program_id": 2,
    "external_tag": "tag",
    "first_name": "John",
    "last_name": "Doe",
    "date_of_birth": "01-01-1980",
    "email": "user@fakedomain.com",
    "phone": "1231231234",
    "postal_code": "84121",
    "city": "Moonbase One",
    "state": "UT",
    "address1": "123 Fake Street",
    "address2": "apartment 2",
    "country": "840",
    "sin": "987654321",
    "shipping_method":"3",
    "load_amount": 500
}

Response
{
    "data": {
        "company_id": "2",
        "created_at": "2021-03-17T18:56:57Z",
        "external_tag": "heh",
        "id": 150,
        "primary_processor_reference": "129201103105",
        "username": null,
        "value_load_result": {
            "code": "success",
            "message": ""
        }
    }
}
```

Step 2: Create External Account P2P

```json
POST {{domain}}/api/v1/card_issuing/cardholders/150/external_accounts
{
    "name": "Bob Smith",
    "email": "bob_smith@aol.com",
    "type": "person_to_person"
}

Response
{
    "data": {
        "cardholder_id": 149,
        "created_at": "2021-03-17T19:02:21Z",
        "email": "bob_smith@aol.com",
        "id": 25,
        "name": "Bob Smith",
        "type": "person_to_person",
        "updated_at": "2021-03-17T19:02:21Z"
    }
}
```

Step 3: Create P2P Transfer

```json
{{domain}}/api/v1/card_issuing/external_transfers
{
    "account_id": 122,
    "external_account_id": 25,
    "external_tag": "P2P",
    "amount": 100,
    "message": "hello there",
    "transfer_type": "direct_send_transfer"
}

Response
{
    "account_id": 122,
    "amount": 100,
    "cardholder_id": 149,
    "external_account_id": 25,
    "external_tag": "P2P",
    "fee_amount": 50,
    "fee_applied": true,
    "fee_id": 19,
    "id": 146,
    "message": "hello there",
    "payment_id": 89,
    "program_id": 2,
    "status": "notification_sent",
    "transaction_id": "0"
}
```

An email will then be sent to `bob_smith@aol.com` containing information on how to redeem the transferred amount.

Currently, VISA Direct is supported. There are plans to add the ability for users to select their redemption method based on their company's payment gateway integration. They may have more options on how to redeem.