Skip to main content

Virtuous CRM API Endpoints

Virtuous CRM API Endpoints

This document catalogs every API endpoint that the iPaaS.com Virtuous CRM integration calls at runtime. It is intended as a reference for firewall whitelisting, API scope configuration, troubleshooting, and impact assessment when Virtuous CRM announces deprecations or changes to its API.

The integration is a webhook-driven, one-way (TO iPaaS.com) flow that retrieves Virtuous CRM Gift records on demand. The endpoint surface is correspondingly small.

Portal Info

Environment

Portal URL

Production

The same portal hosts all Virtuous CRM tenants. There is no separate sandbox or staging URL on the Virtuous CRM side; subscribers test against their normal Virtuous CRM tenant.

API Endpoints Intro

The Virtuous CRM API is a REST API that returns JSON. The integration calls a single base URL across all environments:

Environment

Base URL

Production

Sandbox / Test

https://api.virtuoussoftware.com (same URL — Virtuous CRM does not host a separate sandbox API; all calls go to the production API host)

The Base URL is configured in the iPaaS.com Subscription Settings under the API URL field. Throughout the rest of this document, [Base URL] is used as the environment-agnostic prefix.

Table of Contents

Authorization Endpoint

Obtain an Access Token (POST)

[Base URL]/Token

Used during initial connection establishment and whenever the integration needs to exchange the subscriber's stored credentials for a fresh access token.

  • Method: POST

  • Content-Type: application/x-www-form-urlencoded

  • Request body parameters:

    • grant_type=password

    • username={subscriber Virtuous CRM user name}

    • password={subscriber Virtuous CRM password}

  • Response: JSON containing access_token, refresh_token, token_type, expires_in, .expires.

Refresh an Access Token (POST)

[Base URL]/Token

Same endpoint as above; the integration uses the long-lived refresh token to obtain a new access token when the previous access token has expired.

  • Method: POST

  • Content-Type: application/x-www-form-urlencoded

  • Request body parameters:

    • grant_type=refresh_token

    • refresh_token={stored refresh token}

  • Response: JSON containing a new access_token, refresh_token, token_type, expires_in, .expires.

Gift Endpoints

Get a Gift by Id (GET)

[Base URL]/api/Gift/{id}

Retrieves the full Virtuous Gift record for the given gift id. Called by the integration after receiving a Gift Create or Gift Update webhook (the webhook payload identifies the gift by id; the integration then retrieves the full record before mapping it to an iPaaS.com Transaction). Also called when the subscriber triggers a Manual Sync from the iPaaS.com Manual Sync page using a specific gift id.

  • Method: GET

  • Path parameters:

    • {id} — the numeric primary key of the Virtuous Gift record.

  • Response: JSON Gift object including header fields (id, amount, giftDate, contactId, giftType, custom fields, etc.) and the related-record collections (giftDesignations, giftPremiums, pledgePayments, recurringGiftPayments, giftPassthroughs) — the integration uses only the header fields and custom fields per the current scope (see the Known Limitations article).

Webhook Receiver

The integration also receives webhook callbacks from Virtuous CRM at an iPaaS.com-hosted URL. The receiver is configured on the iPaaS.com side and is not part of the Virtuous CRM API surface, but is listed here for completeness:

The subscriber configures the receiver URL in Virtuous CRM → Settings → Connectivity → Webhooks. See the Virtuous CRM Installation Instructions article for the step-by-step.

Related Documents

External References

Did this answer your question?