yellowcard-business 0.1.21
Python SDK for the YellowCard B2B API

# YellowCard Business SDK

A Python SDK for integrating with the YellowCard B2B API. This SDK provides a simple interface to interact with YellowCard's payment and collection services.

## Installation

Install the package using pip:

```bash
pip install yellowcard_business
```

## Getting Started

To use the SDK, you'll need your API key and secret key from YellowCard. You can initialize the client as follows:

```python
from yellowcard_business import YellowCard

# Initialize the client
client = YellowCard(
    api_key='your_api_key',
    secret_key='your_secret_key',
    env='sandbox'  # Use 'production' for live environment
)
```

## Features

### Payments

#### Create a Payment
```python
from yellowcard_business.models import CreatePaymentRequest, Sender, Destination, AccountType

payment_data = CreatePaymentRequest(
    channelId="fe8f4989-3bf6-41ca-9621-ffe2bc127569",
    reason="bills",
    sequenceId="unique-uuid",
    sender=Sender(name="Python SDK", email="john@example.com", country="NG", address="test", dob="1990-01-01",
                  idNumber="1234567890", idType="test"),
    destination=Destination(
        accountNumber="1234567890",
        accountType="bank",
        accountName="Python SDK",
        networkId="fa316206-dacc-4e87-a80a-5f539a719c56"
    ),
    amount=10,
    forceAccept=False,
    directSettlement=False
)

payment = client.create_payment(payment_data)
```

#### Get Payment Details
```python
payment = client.get_payment("payment_id")
```

#### Accept/Deny Payment
```python
# Accept a payment
accepted_payment = client.accept_payment("payment_id")

# Deny a payment
denied_payment = client.deny_payment("payment_id")
```

### Channels and Networks

#### Get Available Channels
```python
# Get all channels
channels = client.get_channels()

# Get channels for a specific country
channels = client.get_channels(country="NG")
```

#### Get Networks
```python
# Get all networks
networks = client.get_networks()

# Get networks for a specific country and channel
networks = client.get_networks(country="NG", channel_id="channel_id")
```

### Rates

```python
# Get all rates
rates = client.get_rates()

# Get rates for a specific currency
rates = client.get_rates(currency="ZAR")

# Get rates with conversion
rates = client.get_rates(currency="ZAR", convert="NG")
```

### Collections

```python
# Create a collection
from yellowcard_business.models import CreateCollectionRequest, Recipient, Destination, AccountType

collection_request = CreateCollectionRequest(
    channelId="af944f0c-ba70-47c7-86dc-1bad5a6ab4e4", # deposit channel
    reason="other",
    sequenceId="uuid",
    recipient=Recipient(
        name="Python SDK",
        email="john@example.com",
        country="NG",
        address="test",
        dob="1990-01-01",
        idNumber="1234567890",
        idType="test",
        phone="+2348090909090"
    ),
    source=Destination(
        accountNumber="1234567890",
        accountType=AccountType.BANK,
        accountName="Python SDK",
        networkId="fa316206-dacc-4e87-a80a-5f539a719c56"
    ),
    amount=10,
    forceAccept=False,
    directSettlement=False
)
collection = client.create_collection(collection_request)

# Get collection details
collection = client.get_collection("collection_id")

# Accept a collection
client.accept_collection("collection_id")

# Deny a collection
client.deny_collection("collection_id")
```

## Error Handling

The SDK will raise exceptions when API calls fail. It's recommended to wrap API calls in try-except blocks:

```python
try:
    payment = client.get_payment("payment_id")
except Exception as e:
    print(f"An error occurred: {str(e)}")
```

## Support

For support and more information about the YellowCard B2B API, please contact our support team or visit our documentation.

## License

[Add your license information here]