Anonymous Cards

This feature allows end users to link a card that will not be tied to an entity, allowing for funds to be issued to a Sila Wallet without the issuer needing to go through KYC.

This endpoint requires a Checkout card token, which you will obtain from Checkout via an iFrame. For more on linking cards, please see the /link_card documentation.

Card Tokens for Testing

For testing in Sandbox, use the /create_test_cko_token endpoint to generate a CKO token to input into the request.

Source and Destination Keys for /issue_sila

In order to use this feature you must supply a source_id and a destination_id to your /issue_sila call.

  • source_id: card_id that is provided by the /link_card response.
  • destination_id: wallet_id provided by both /get_wallet and /get_wallets . This user must have passed KYC.

Request

Authorization / Authentication

Apps using Access Token Authorization

Use a valid access token in an Authorization: Bearer request header.

See Authenticating with an Access Token for more details.

Apps using ECDSA Authentication

Both authsignature and usersignature headers are required for this request. The usersignature header should be generated with a keypair registered to the user (either registered from the /register endpoint or the /register_wallet endpoint).

See the section on ECDSA Authentication for more detail about ECDSA signature generation.

Code Sample

POST /0.2/link_card HTTP/1.1
Host: sandbox.silamoney.com
// if using Auth Token
Authorization: Bearer [GENERATED JWT TOKEN HERE]
// if using ECDSA
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
usersignature: [GENERATED USERSIGNATURE HEX STRING HERE]
Content-Type: application/json

{
  "header": {
    "created": 1234567890, 
    "app_handle": "handle.silamoney.eth", 
    "user_handle":"user.silamoney.eth", 
    "reference": "<your unique id>"
  },
  "card_name": "<card nickname string>", //required
  "token": "<cko token>", //required
  "provider": "cko", //required
  "anonymous": true, //required
  "first_name": "<first name of card owner>", //required
  "last_name": "<last name of card owner>", //required
  "address": {
    "street_address_1": "<first line of card owner street address>", //required
    "street_address_2": "<second line of card owner street address>", //required
    "city": "<card owner city>", //required
    "state": "<card owner state>", //required
    "county": "US", //required
    "postal_code": "<card owner postal code>" //required
  }
}

***

HTTP/1.1  200
{
    "success": true,
    "message": "Card was successfully linked.",
    "reference": "<your unique id>",
    "card_details": {
        "card_name": "Card Name",
        "card_last_4": 1157,
        "expiration": "202512",
        "card_type": "Debit",
        "card_network": "Visa",
        "pull_enabled": true,
        "push_enabled": null,
        "push_availability": null,
        "active": true,
        "country": "GB",
        "currency": "USD",
        "card_id": "c56455ac-4612-4d8c-a79c-14b804e4430d"
    },
    "status": "SUCCESS",
    "response_time_ms": "1007"
}
KeyTypeDescription
headerJSON ObjectRequired. Requires these keys in JSON format: created, app_handle, user_handle. See the /check_handle endpoint for the complete list of fields in this object.
card_nameStringRequired.

Example: Custom Card Name
NOTE - We highly recommend specifying a custom name here as this is how a card is identified for /issue_sila, /redeem_sila, and /get_transactions.
tokenStringRequired.

In Production, pass the card token obtained from Checkout, and in Sandbox for testing use the card token returned from the /create_cko_testing_token endpoint.
providerStringRequired.

"CKO" or "cko"
anonymousBooleanRequired.

Set to true.
first_nameStringRequired.

First name of card owner.
last_nameStringRequired.

Last name of card owner
address.street_address_1StringRequired.

First line of the street address of the card owner.
address.street_address_2StringRequired.

Second line of the street address of the card owner.
address.cityStringRequired.

City of the card owner.
address.stateStringRequired.

State of the card owner, two letter abbreviation. (ex: OR for Oregon)
address.countyStringRequired.

Country of the owner of the card. Must be US.
address.postal_codeIntegerRequired.

Postal code of the owner.
Min: 5 characters
Max: 10 characters