Issuers

The issuer is the legal entity issuing one or more products. To create a product, you will first need to create an issuer. During product creation you can reference the issuer by the issuer ID.

circle-info

Creating an issuer

To create a issuer the following data is needed:

  • Company data such as name and commercial register data (legal_person)

  • Personal data, residence address and PEP status of the CEO (natural_person)

  • Bank account information of the issuer (bank_account )

The issuer entity functions as an extension of a standard registry account. Please begin by creating an account on your preferred distribution platform. When setting up the issuer, ensure the issuer data mirrors the account data exactly. Specifically, the following fields must match:

  • company_name

  • commercial_register

  • commercial_register_number

Example:

r = requests.post(
    f'{URL}/issuer/v2/documents/',
    files={'file': ('identity_proof.pdf', b'ASD', 'application/pdf')},
    headers={**headers, 'X-Idempotency-Key': make_key()}
)
assert r.status_code < 300, r.content
identity_proof_id = r.json()['id']

r = requests.post(
    f'{URL}/issuer/v2/documents/',
    files={'file': ('structure_proof.pdf', b'ASD', 'application/pdf')},
    headers={**headers, 'X-Idempotency-Key': make_key()}
)
assert r.status_code < 300, r.content
structure_proof_id = r.json()['id']

r = requests.post(
    f'{URL}/issuer/v2/issuers/',
    json={
        'natural_person': {
            'forename': 'John',
            'surname': 'Smith',
            'birth_date': '1990-01-31',
            'birth_place': 'Berlin',
            'citizenship': 'DEU',
            'street': 'Hauptstr. 37',
            'city': 'Frankfurt',
            'zip': '60316',
            'country': 'DEU',
            'phone': '+49 123 456 789',
            'is_pep': False,
            'is_subject_to_us_tax': False
        },
        'legal_person': {
            'city': 'string',
            'commercial_register': 'Amtsgericht München',
            'commercial_register_number': 'HRB 12344',
            'company_identity_proof_id': identity_proof_id,
            'company_name': 'Test GmbH',
            'company_structure_proof_id': structure_proof_id,
            'country': 'DEU',
            'phone': '0173 2093790',
            'street': 'string',
            'zip': 'string'
        },
        'bank_account': {
            'account_holder': 'Big GmbH',
            'bank': 'Commerzbank Frankfurt',
            'bic': 'GENODEF1ERG',
            'country': 'DEU',
            'currency': 'EUR',
            'iban': 'DE27700901000000063292',
            'shared_account': False
        }
    },
    headers={**headers, 'X-Idempotency-Key': make_key()}
)
assert r.status_code < 300, r.content
print(f'Issuer: {r.json()["id"]}')

After you've created the issuer via the Issuer API, Cashlink will verify the identity of the issuer. Cashlink will notify you, if additional data is required for the issuer identity verification to succeed.

Retrieving issuer information

You can use the API to retrieve information about all issuers already created.

Example:

Last updated

Was this helpful?