Connect Stripe and Adyen

Connect a Stripe or Adyen platform to Coris so that processor events trigger onboarding checks and monitoring.

Connect once, and Coris receives processor events from then on. Adyen connects with help from Coris.

YouCorisStripe
  1. You → Coris
    1Add Stripe key in the portal
  2. Coris → Stripe
    2Create platform and Connect webhook endpoints
  3. Stripe → Coris
    3Events for connected accounts
  4. Coris
    4Create accounts and run monitoring
  5. You → Coris
    5GET /accounts/{account_id}/

Step 1: Connect Stripe

  1. Open Stripe Connect under integrations in the portal.
  2. Add a name and your Stripe key, a test key in the sandbox.
  3. Choose direct charges, destination charges, or both.
  4. Save. Coris creates two webhook endpoints in Stripe.

Step 2: Confirm an account arrives

Create or update a connected account at the processor, then read it.

export CORIS_BASE_URL="https://sandbox-api.coris.ai/api/v0_2"
export CORIS_API_KEY="YOUR_API_KEY"
import requests

BASE_URL = "https://sandbox-api.coris.ai/api/v0_2"
HEADERS = {"Authorization": "Token YOUR_API_KEY"}
const BASE_URL = "https://sandbox-api.coris.ai/api/v0_2";
const HEADERS = {
  Authorization: "Token YOUR_API_KEY",
  "Content-Type": "application/json",
};

The Stripe account ID is the reference_id. Without a connected account, this call returns a plain-text 404.

# Replace acct_1AcmeExample with your connected account's ID.
http_status=$(curl -s -o /tmp/coris_body -w '%{http_code}' \
  "$CORIS_BASE_URL/accounts/acct_1AcmeExample/" \
  -H "Authorization: Token $CORIS_API_KEY")

if [ "$http_status" = "200" ]; then
  jq '{id, reference_id, source}' /tmp/coris_body
else
  echo "HTTP $http_status: $(cat /tmp/coris_body)"
fi
# Replace acct_1AcmeExample with your connected account's ID.
response = requests.get(f"{BASE_URL}/accounts/acct_1AcmeExample/", headers=HEADERS)

if response.status_code == 200:
    print(response.json())
else:
    print(response.status_code, response.text)
// Replace acct_1AcmeExample with your connected account's ID.
const connected = await fetch(`${BASE_URL}/accounts/acct_1AcmeExample/`, { headers: HEADERS });

if (connected.status === 200) {
  console.log(await connected.json());
} else {
  console.log(connected.status, await connected.text());
}

Try GET /accounts/{account_id}/ in the API explorer.

On a 200, confirm that source reads stripe. Use id or the Stripe account ID in later calls.

Connect Adyen

Ask Coris to connect Adyen, and provide Adyen API credentials and an HMAC key. Coris gives you a webhook URL for your Adyen setup. Send account holder, balance account, transfer and payment notification events to it.

Adyen access lists each event and credential.

To confirm, run step 2 with the account holder ID. source reads adyen.

What to do next

ResultAction
200Register a webhook. See Receive webhooks.
404The account may not be ready to onboard. Check that it accepted terms and has business details.

FAQ

Do existing connected accounts appear?

Coris receives events from the moment you connect. For older accounts, ask about a backfill.

Can I connect more than one Stripe platform?

Add one key per platform, each with a unique name.

What happens if I delete a key?

Monitoring from that key stops with no error. Coris acknowledges any events that still arrive, and does not process them. The key and both endpoints stay in Stripe, so delete them there too.

Which Stripe events and permissions does Coris need?

Both endpoints subscribe to a fixed list of events. Stripe access describes them, with the permissions a restricted key needs.

What if I have no portal access?

Request a portal login.

Next: What is the Coris API


Did this page help you?