# Viva.com

Viva.com lets the agent take a payment without hearing a card number. While the call is running, a workflow creates a Viva.com Smart Checkout link for an amount in euros and sends it to the caller by SMS. The caller pays on Viva's own page. Card details never pass through the call.

Open **Integrations - Catalogue - Viva.com - Connect**. One connection is shared by the whole company. Every agent and workflow in the company uses the same Viva.com account.

On a call, Viva.com works through the **Viva — Create Payment Link** workflow node. There is no separate Viva tool card on the agent. You build a short During-call workflow and attach it to the agent.

  <ShotPlaceholder
    src="/assets/integrations/viva.png"
    name="viva-connect"
    alt="Connect Viva.com dialog with Client ID, Client secret, Environment and Source code"
    capture="Integrations - Catalogue - Viva.com - Connect dialog, empty form."
  />

## What you need before you start

- A Viva.com merchant account. For a first test, a Viva demo account is enough.
- An OAuth 2.0 application in the Viva.com merchant portal, under **Settings - API Access**. It gives you a Client ID and a Client secret.
- Optional: a Viva payment source code, if you want these links grouped under their own source in Viva.
- SMS sending set up for the company, because the link reaches the caller by SMS.

## What you enter

- **Client ID** (required) — The OAuth 2.0 Client ID of the application you created under Settings - API Access.
- **Client secret** (required) — The matching Client secret. It is stored encrypted.
- **Environment** (required) — **Live** for real payments, **Demo / sandbox** for tests. The credentials must come from the same environment you pick. Demo credentials do not work on Live, and Live credentials do not work on Demo.
- **Source code** — The Viva source the links are created under. If you leave it empty, links use the account's default source.
- **Account label** — Under **Advanced settings**. A name for the connected card, useful when you keep a demo and a live account apart.

**Test connection** asks Viva.com for an access token with the credentials you typed. Use it before **Connect**.

## First setup

1. **Create the API credentials in Viva.com**

   In the merchant portal, open **Settings - API Access**, create an OAuth 2.0 application and copy its Client ID and Client secret. Start with your demo account.

2. **Connect Viva.com**

   **Integrations - Catalogue - Viva.com - Connect**. Paste the Client ID and Client secret, set **Environment** to **Demo / sandbox**, then **Test connection** and **Connect**.

3. **Build the payment workflow**

   In **Workflows**, create a During-call workflow. Add the **Viva — Create Payment Link** node. Set **Amount (€)** to a fixed value or a variable from an earlier node, for example `{{node_3.order.total}}`. Set the **Description** the customer sees on the payment page. **Customer Phone** already holds `{{call.phone_number}}`.

4. **Send the link**

   Connect the node's success branch to an SMS node and put `{{node_X.payment_url}}` in the message, where `X` is the Viva node's number. Then add an AI response that tells the caller the link is on its way. Connect the failure branch to an AI response that offers another way to pay.

5. **Attach the workflow to the agent**

   **My Agents - agent - Skills - Tools & Workflows** - add the workflow under Business Workflows, then **Save**.

6. **Prove it**

   Call the agent and ask to pay. The SMS arrives with a Viva link. Open it and finish a payment with a Viva demo card. The order appears in your Viva demo account.

7. **Switch to Live**

   Create Live credentials in Viva.com, open the connected Viva.com card and reconnect with **Environment** set to **Live**.

## What the agent can do

- Create a Viva.com payment link for an amount in euros. A comma decimal such as 25,50 is accepted.
- Show the customer a description of what they are paying for on Viva's page.
- Open the payment page in Greek or English (the node's **Language** setting).
- Send the link by SMS or Viber through the next workflow node, so the caller pays on their phone after or during the call.
- Pass the Viva order code to later nodes as `{{node_X.order_code}}`, for example to write it into a CRM note or an email.

The link expires after Viva's default timeout of 30 minutes. The agent does not learn whether the customer completed the payment. Check paid orders in your Viva.com account.

## Troubleshooting

**Test connection fails**

Viva.com refused the token request. Check that you pasted the Client ID and Client secret of the OAuth 2.0 application, not your portal login. Then check **Environment**: demo credentials work only with **Demo / sandbox**, live credentials only with **Live**.

**The Viva node takes the failure branch with an invalid amount**

**Amount (€)** must resolve to a positive number in euros, such as 25.50. If it points to a variable, open the call in **Calls** and check what the earlier node returned. An empty value, zero or text makes the node fail.

**The node succeeds but the caller gets no SMS**

The SMS node is missing from the success branch, or its message does not contain `{{node_X.payment_url}}` with the right node number. Also check that the company can send SMS and that the caller's number is a mobile number.

**Customers land on a demo payment page**

The connection is still on **Demo / sandbox**. Reconnect Viva.com with Live credentials and **Environment** set to **Live**.

## Next Steps

[Get an integration working](https://docs.voicelogica.ai/integrations/) - the company connection and the agent side.  
[During-call workflows](https://docs.voicelogica.ai/workflows/during-call/) - how a workflow runs while the caller is on the line.  
[SMS node](https://docs.voicelogica.ai/workflow-nodes/sms/) - sending the payment link.
