Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/bonterra-fka-everyaction:bonterra-fka-everyaction-commitments-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: everyaction-8 Commitments API
version: '1.0'
servers:
- url: https://api.securevan.com/v4
security:
- sec0: []
tags:
- name: Commitments
paths:
/commitments:
post:
summary: /commitments
description: Use this endpoint to create a new Commitment record with the properties provided in the request body. If successful, the endpoint responds with HTTP Status Code `201 Created` and the integer ID of the created Recurring Commitment in the response body. If any of the specified ids (`vanId`, `codeId`, or `extendedSourceCodeId`) are not accessible in the current context (e.g., the associated api user does not have access to the person), the response will be considered invalid.
operationId: commitments
requestBody:
content:
application/json:
schema:
type: object
required:
- contact
- designation
- startDate
- frequency
- amount
- paymentType
properties:
contact:
type: object
description: The [Person](https://docs.everyaction.com/reference/people) who contributed
properties:
vanId:
type: string
default: '10005165'
designation:
type: object
description: The financial entity which will receive funds associated with this Commitment.
properties:
designationId:
type: integer
default: 18754
format: int32
startDate:
type: string
description: The date the Recurring Commitment started. The startDate must be the same or later than the current US Eastern Time date.
default: '2025-01-01'
format: date
endDate:
type: string
description: The date the Recurring Commitment ended. If present, endDate must be later than startDate.
default: '2026-01-01'
format: date
frequency:
type: string
description: The frequency of each recurring commitment installment.
enum:
- Weekly
- EveryTwoWeeks
- EveryFourWeeks
- Monthly
- TwiceMonthly
- Quarterly
- Annually
- TwiceAnnually
amount:
type: number
description: Decimal monetary amount of each Recurring Commitment installment.
default: 10
format: double
paymentType:
type: string
description: Payment method by which the funds will be contributed
enum:
- Check
- MoneyOrder
- Cash
- CreditCard
- InKind
- Unknown
- ElectronicFundsTransfer
- ElectronicPaySystem
- Stock
- ApplePay
codes:
type: array
description: An array of zero or one [Code](https://docs.everyaction.com/reference/codes) to apply to the contribution. Contributions may not have more than one Code applied, and if a Code is applied, it must be a Source Code.
items:
properties:
parentCodeId:
type: integer
default: 1002316
format: int32
name:
type: string
default: Labor
description:
type: string
default: The tag for describing Labor
supportedEntities:
type: array
items:
properties:
name:
type: string
default: Events
isSearchable:
type: boolean
default: true
isApplicable:
type: boolean
default: true
type: object
codeType:
type: string
default: Tag
type: object
generalLederFund:
type: object
description: The associated `GeneralLedgerFund` object
properties:
GeneralLedgerFundId:
type: integer
description: ID of the General Ledger Fund
default: 89
format: int32
costCenter:
type: object
description: The associated `CostCenter` object
properties:
costCenterId:
type: integer
description: ID of the Cost Center
default: 71
format: int32
directMarketingCode:
type: string
description: A direct marketing code
default: Excelsior Consulting
notes:
type: string
description: A note describing this commitment
default: Donated in-person at Annual Gala
extendedSourceCode:
type: object
description: The [Extended Source Code](https://docs.everyaction.com/reference/extended-source-codes) object to apply to the Contribution. If this is provided, we’ll look for and apply a matching [Source Code](https://docs.everyaction.com/reference/codes) to the contribution from a Direct Response Plan segment that the contact is in with a contact history record that has the extended source code. If no matching source code is found, then the POST will fail.
properties:
codeId:
type: integer
default: 123
format: int32
responses:
'201':
description: '201'
content:
application/json:
examples:
Result:
value: "{\n commitmentId: 12345\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"INVALID_PARAMETER\",\n \"text\": \"The body of the request is null or cannot be parsed.\"\n },\n {...}\n ]\n}"
'403':
description: '403'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"FORBIDDEN\",\n \"text\": \"Not permissioned to create recurring commitments\"\n },\n {...}\n ]\n}"
deprecated: false
tags:
- Commitments
/commitments/recurringPayments:
post:
summary: /commitments/recurringPayments
description: Creates a Recurring Commitment record and processes or initiates the first installment contribution with the payment information provided in the request body.
operationId: commitments-recurringpayments
parameters:
- name: idempotencyKey
in: header
description: An unique value generated by the client which the server uses to recognize subsequent retries of the same request. Can be any string at most 50 characters long - we recommend a V4 UUID. Keys are temporary and may be removed from the system after 48 hours.
required: true
schema:
type: string
default: 00000000-0000-0000-0000-000000000123
requestBody:
content:
application/json:
schema:
type: object
required:
- contact
- designation
- gatewayId
- startDate
- frequency
- amount
- paymentMethod
properties:
contact:
type: object
description: The [Person](https://docs.everyaction.com/reference/people) who contributed.
properties:
vanId:
type: string
default: '100476252'
designation:
type: object
description: The [Designation](https://docs.everyaction.com/reference/designations) which will receive funds associated with this Recurring Commitment.
properties:
designationId:
type: integer
default: 18754
format: int32
gatewayId:
type: integer
description: The payment gateway which will process installments of this Recurring Commitment.
default: 123456
format: int32
startDate:
type: string
description: The date upon which the first installment of the Recurring Commitment should be processed.
default: '2025-01-01'
format: date
endDate:
type: string
description: The date upon which no further installments of the Recurring Commitment should be processed.
default: '2025-01-01'
format: date
frequency:
type: string
description: The repeated frequency on which all Recurring Commitment installments will be processed.
enum:
- Weekly
- EveryTwoWeeks
- EveryFourWeeks
- Monthly
- TwiceMonthly
- Quarterly
- Annually
- TwiceAnnually
amount:
type: number
description: Monetary amount of each Recurring Commitment installment. Non-positive values, and values that have more than 2 digits after the decimal point, will not be accepted. Must be between $0.01 and $999,999.99, inclusive.
default: 10.26
format: double
paymentMethod:
type: object
description: Payment information that will be used to process each installment of the Recurring Commitment.
properties:
paymentType:
type: string
description: The value of PaymentType determines the required parameters for the rest of this object. CreditCard requires creditCardNumber, expirationMonth, expirationYear, with cvv optional; ElectronicFundsTransfer requires accountType, routingNumber, accountNumber. Including CreditCard fields with paymentType EFT or vice versa will be treated as an invalid request.
default: CreditCard
enum:
- CreditCard
- ElectronicFundsTransfer
creditCardNumber:
type: string
description: Credit card payments - credit card number
default: '411111111111111'
cvv:
type: string
description: Credit card payments - credit card cvv
default: '123'
expirationMonth:
type: string
description: Credit card payments - two-digit expiration month of card
default: '05'
expirationYear:
type: string
description: Credit card payments - four-digit expiration year
default: '2026'
accountType:
type: string
description: ElectronicFundsTransfer payments - the type of account
enum:
- PersonalChecking
- PersonalSavings
accountNumber:
type: string
description: ElectronicFundsTransfer payments - account number
default: '11718223245378973'
routingNumber:
type: string
description: ElectronicFundsTransfer payments - routing number
default: '11123224375893663'
codes:
type: array
description: An array of zero or one [Code](https://docs.everyaction.com/reference/codes) to apply to the Recurring Commitment. Recurring Commitments may not have more than one Code applied, and if a Code is applied, it must be a Source Code.
items:
properties:
codeId:
type: integer
default: 1002316
format: int32
codeName:
type: string
default: Labor
required:
- codeId
type: object
generalLedgerFund:
type: object
description: The associated generalLedgerFund object.
properties:
GeneralLedgerFundId:
type: integer
description: ID of the General Ledger Fund
default: 89
format: int32
costCenter:
type: object
description: The associated costCenter object.
properties:
costCenterId:
type: integer
description: ID of the Cost Center
default: 71
format: int32
directMarketingCode:
type: string
description: The direct marketing code.
notes:
type: string
description: A note describing the Recurring Commitment.
extendedSourceCode:
type: object
description: The [Extended Source Code](https://docs.everyaction.com/reference/extendedsourcecodes) object to apply to the Recurring Commitment. Only the extendedSoureCodeId property is required. If this is provided, we’ll look for and apply a matching Source Code to the commitment from a Direct Response Plan segment that the contact is in with a contact history record that has the extended source code. If no matching source code is found, then the POST will fail.
properties:
extendedSourceCodeId:
type: integer
description: A unique identifier for an Extended Source Code in this context
default: 123
format: int32
responses:
'201':
description: '201'
content:
application/json:
examples:
Result:
value: "{\n contributionId: 12345,\n commitmentId: 23456\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"INVALID_PARAMETER\",\n \"text\": \"'designation' (designationId: 0) must be a valid Designation available in this context\",\n \"properties\": [\n \"designation\"\n ]\n }\n ]\n}"
schema:
type: object
properties:
errors:
type: array
items:
type: object
properties:
code:
type: string
example: INVALID_PARAMETER
text:
type: string
example: '''designation'' (designationId: 0) must be a valid Designation available in this context'
properties:
type: array
items:
type: string
example: designation
'401':
description: '401'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"UNAUTHORIZED\",\n \"text\": \"The request could not be authorized because a session is not present, an Authentication header was not sent, and/or the route does not allow anonymous requests.\"\n }\n ]\n}"
schema:
type: object
properties:
errors:
type: array
items:
type: object
properties:
code:
type: string
example: UNAUTHORIZED
text:
type: string
example: The request could not be authorized because a session is not present, an Authentication header was not sent, and/or the route does not allow anonymous requests.
'403':
description: '403'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"FORBIDDEN\",\n \"text\": \"Your user does not have permission to use this endpoint.\"\n }\n ]\n}"
schema:
type: object
properties:
errors:
type: array
items:
type: object
properties:
code:
type: string
example: FORBIDDEN
text:
type: string
example: Your user does not have permission to use this endpoint.
'409':
description: '409'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"CONFLICT\",\n \"text\": \"Duplicate in-progress transaction detected\"\n }\n ]\n}"
schema:
type: object
properties:
errors:
type: array
items:
type: object
properties:
code:
type: string
example: CONFLICT
text:
type: string
example: Duplicate in-progress transaction detected
'500':
description: '500'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"INTERNAL_SERVER_ERROR\",\n \"text\": \"An unknown error occurred\",\n \"referenceCode\": \"A1B2C3-D4E5F6\"\n }\n ]\n}"
schema:
type: object
properties:
errors:
type: array
items:
type: object
properties:
code:
type: string
example: INTERNAL_SERVER_ERROR
text:
type: string
example: An unknown error occurred
referenceCode:
type: string
example: A1B2C3-D4E5F6
deprecated: false
tags:
- Commitments
/commitments/{commitmentId}:
patch:
summary: /commitments/{commitmentId}
description: Updates or cancels an existing recurring commitment
operationId: commitments-commitmentid
parameters:
- name: commitmentId
in: path
description: Required; Unique [commitment](https://docs.everyaction.com/reference/commitments) identifier available in the current context
schema:
type: integer
format: int32
default: 222
required: true
requestBody:
content:
application/json:
schema:
type: object
properties:
status:
type: string
description: The status of the commitment
default: Active
enum:
- Active
- InactiveCancelled
NextTransactionDate:
type: string
default: '2025-01-01'
format: date
Amount:
type: number
description: Decimal monetary amount of each Recurring Commitment installment. Must be between $0.01 and $999,999.99 inclusive, unless disclosure fields are enabled, in which case all positive or negative values are allowed. May not have more than 2 digits after the decimal point.
default: 10.5
format: double
endDate:
type: string
description: The date upon which no further installments of the Recurring Commitment should be processed.
default: '2026-01-01'
format: date
responses:
'202':
description: '202'
content:
application/json:
examples:
Result:
value: "{\n 'contactsRecurringContributionId': 20290,\n 'vanId': 110794153,\n 'donorName': 'Raphaelson, William',\n 'startDate': '2021-02-17T00:00:00Z',\n 'endDate': '2022-01-01T00:00:00Z', \n 'status': 'Inactive--Cancelled',\n 'amount': 10.0,\n 'amountContributed': 0.0,\n 'currency': 'USD',\n 'frequency': 'Annually',\n 'nextPaymentDate': None,\n 'paymentType': 'Credit Card',\n 'creditCardLast4': None,\n 'financialProgramId': 40,\n 'financialProgramName': 'Team Olive Forms Live Always Works',\n 'sourceCodeName': None,\n 'sourceCodeDescription': None,\n 'sourceCodeStaticPath': None\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"INVALID_PARAMETER\",\n \"text\": \"The body of the request is null or cannot be parsed.\"\n },\n {...}\n ]\n}"
'403':
description: '403'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"FORBIDDEN\",\n \"text\": \"Not permissioned to create or edit recurring commitments\"\n },\n {...}\n ]\n}"
'404':
description: '404'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"NOT_FOUND\",\n \"text\": \"The specified resource cannot be found.\"\n }\n ]\n} "
schema:
type: object
properties:
errors:
type: array
items:
type: object
properties:
code:
type: string
example: NOT_FOUND
text:
type: string
example: The specified resource cannot be found.
'500':
description: '500'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"INTERNAL_SERVER_ERROR\",\n \"text\": \"An unknown error occurred\",\n \"referenceCode\": \"A1B2C3-D4E5F6\"\n }\n ]\n}"
schema:
type: object
properties:
errors:
type: array
items:
type: object
properties:
code:
type: string
example: INTERNAL_SERVER_ERROR
text:
type: string
example: An unknown error occurred
referenceCode:
type: string
example: A1B2C3-D4E5F6
deprecated: false
tags:
- Commitments
components:
securitySchemes:
sec0:
type: http
scheme: basic
x-readme-fauxas: true
x-provenance:
method: searched
source: https://docs.everyaction.com/reference
harvested: '2026-10-14'
tool: harvest-readme-openapi.py
note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
assembled_from:
- https://docs.everyaction.com/reference/activistcodes-activistcodeid.md
- https://docs.everyaction.com/reference/activistcodes.md
- https://docs.everyaction.com/reference/ballotrequesttypes-ballotrequesttypeid.md
- https://docs.everyaction.com/reference/ballotrequesttypes.md
- https://docs.everyaction.com/reference/ballotreturnstatuses-ballotreturnstatusid.md
- https://docs.everyaction.com/reference/ballotreturnstatuses.md
- https://docs.everyaction.com/reference/ballottypes-ballottypeid.md
- https://docs.everyaction.com/reference/ballottypes.md
- https://docs.everyaction.com/reference/bargainingunits-bargainingunitid.md
- https://docs.everyaction.com/reference/bargainingunits.md
- https://docs.everyaction.com/reference/bulkimportjobs-jobid.md
- https://docs.everyaction.com/reference/bulkimportjobs-resources.md
- https://docs.everyaction.com/reference/bulkimportjobs.md
- https://docs.everyaction.com/reference/bulkimportmappingtypes-mappingtypename-fieldname-values.md
- https://docs.everyaction.com/reference/bulkimportmappingtypes-mappingtypename.md
- https://docs.everyaction.com/reference/bulkimportmappingtypes.md
- https://docs.everyaction.com/reference/canvassfilereqeusts-canvassfilerequestid.md
- https://docs.everyaction.com/reference/canvassfilerequests.md
- https://docs.everyaction.com/reference/canvassresponses-contacttypes.md
- https://docs.everyaction.com/reference/canvassresponses-inputtypes.md
- https://docs.everyaction.com/reference/canvassresponses-resultcodes.md
- https://docs.everyaction.com/reference/changedentityexportjobs-changetypes-resourcetype.md
- https://docs.everyaction.com/reference/changedentityexportjobs-exportjobid.md
- https://docs.everyaction.com/reference/changedentityexportjobs-fields-resourcetype.md
- https://docs.everyaction.com/reference/changedentityexportjobs-resources.md
- https://docs.everyaction.com/reference/changedentityexportjobs.md
- https://docs.everyaction.com/reference/codes-batch.md
- https://docs.everyaction.com/reference/codes-codeid.md
- https://docs.everyaction.com/reference/codes-supportedentities.md
- https://docs.everyaction.com/reference/codesextendedsourcecodes.md
- https://docs.everyaction.com/reference/codetypes.md
- https://docs.everyaction.com/reference/commitments-commitmentid.md
- https://docs.everyaction.com/reference/commitments-recurringpayments.md
- https://docs.everyaction.com/reference/commitments.md
- https://docs.everyaction.com/reference/contributions-alternateidtype-alternateid.md
- https://docs.everyaction.com/reference/contributions-attribution-types.md
- https://docs.everyaction.com/reference/contributions-contributionid-adjustments.md
- https://docs.everyaction.com/reference/contributions-contributionid-attributions-vanid.md
- https://docs.everyaction.com/reference/contributions-contributionid.md
- https://docs.everyaction.com/reference/contributions-payments.md
- https://docs.everyaction.com/reference/contributionsrecentcontributions.md
- https://docs.everyaction.com/reference/create-surveyquestion.md
- https://docs.everyaction.com/reference/customfields-customfieldid.md
- https://docs.everyaction.com/reference/customfields.md
- https://docs.everyaction.com/reference/delete-codes-codeid.md
- https://docs.everyaction.com/reference/delete-codes.md
- https://docs.everyaction.com/reference/delete-contributions-contributionid-attributions-vanid.md
- https://docs.everyaction.com/reference/delete-events-eventid.md
- https://docs.everyaction.com/reference/delete-people-vanid-myactivistflags.md
- https://docs.everyaction.com/reference/departments-departmentid.md
- https://docs.everyaction.com/reference/designations-designationid.md
- https://docs.everyaction.com/reference/disbursements-disbursementid.md
- https://docs.everyaction.com/reference/disbursementsrecentdisbursements.md
- https://docs.everyaction.com/reference/districtfields-districtfieldid.md
- https://docs.everyaction.com/reference/districtfields.md
- https://docs.everyaction.com/reference/earlyvotefields.md
- https://docs.everyaction.com/reference/earlyvotefieldsearlyvotefieldid.md
- https://docs.everyaction.com/reference/echoes.md
- https://docs.everyaction.com/reference/email-message-emailid.md
- https://docs.everyaction.com/reference/email-messages.md
- https://docs.everyaction.com/reference/employers-employerid-bargainingunits-bargainingunitid-jobclassesjobclassid.md
- https://docs.everyaction.com/reference/employers-employerid-bargainingunits-bargainingunitid.md
- https://docs.everyaction.com/reference/employers-employerid-deparments.md
- https://docs.everyaction.com/reference/employers-employerid-shifttypes-shifttypeid.md
- https://docs.everyaction.com/reference/employers-employerid-worksites.md
- https://docs.everyaction.com/reference/employers-employerid.md
- https://docs.everyaction.com/reference/employersemployeridbargainingunitsbargainingunitiddelete.md
- https://docs.everyaction.com/reference/employersemployeridbargainingunitsbargainingunitidjobclassesjobclassiddelete.md
- https://docs.everyaction.com/reference/employersemployeridshifttypesshifttypeiddelete.md
- https://docs.everyaction.com/reference/events-eventid-shifts.md
- https://docs.everyaction.com/reference/events-eventid.md
- https://docs.everyaction.com/reference/events-types-eventtypeid.md
- https://docs.everyaction.com/reference/events-types.md
- https://docs.everyaction.com/reference/exportjobs.md
- https://docs.everyaction.com/reference/exportjobsexportjobid.md
- https://docs.everyaction.com/reference/exportjobtypes.md
- https://docs.everyaction.com/reference/fileloadingjobs.md
- https://docs.everyaction.com/reference/fileloadingjobsjobid.md
- https://docs.everyaction.com/reference/fileloadingjobsjobidstats.md
- https://docs.everyaction.com/reference/financialbatches-1.md
- https://docs.everyaction.com/reference/financialbatches.md
- https://docs.everyaction.com/reference/financialbatchesfinancialbatchid.md
- https://docs.everyaction.com/reference/find-by-phone.md
- https://docs.everyaction.com/reference/folders-1.md
- https://docs.everyaction.com/reference/foldersfolderid.md
- https://docs.everyaction.com/reference/foldersfolderidmapregions.md
- https://docs.everyaction.com/reference/foldersfolderidmapregionsmapregionid.md
# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bonterra-fka-everyaction/refs/heads/main/openapi/bonterra-fka-everyaction-commitments-api-openapi.yml