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 |
|
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-urlencodedRequest body parameters:
grant_type=passwordusername={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-urlencodedRequest body parameters:
grant_type=refresh_tokenrefresh_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:
Receiver URL (production):
https://api.ipaas.com/hookapi/v2/dynamic/VirtuousCRM?webhookapikey={WebhookAPIKey}Receiver URL (staging):
https://stagingapi.ipaas.com/hookapi/v2/dynamic/VirtuousCRM?webhookapikey={WebhookAPIKey}Subscribed events: Gift Create and Gift Update.
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
