openapi: 3.2.0 info: title: everyaction-8 Contributions API version: '1.0' servers: - url: https://api.securevan.com/v4 security: - sec0: [] tags: - name: Contributions paths: /contributions: post: summary: /contributions description: Use this endpoint to create a new contribution 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 Contribution in the response body. If any of the specified ids (`vanId`, `pledgeId`, `codeId`, or `extendedSourceCodeId`) are not accessible in the current context (e.g., the associated api user does not have access to the contact), the request will be considered invalid. operationId: post-contributions requestBody: content: application/json: schema: type: object required: - contact - designation - dateReceived - amount - status - 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 [Designation](https://docs.everyaction.com/reference/designations) which will receive funds associated with this Contribution. properties: designationId: type: integer default: 18754 format: int32 dateReceived: type: string description: The date and time of this contribution; must occur before the time of the API call. default: '2013-12-25T12:23:00Z' format: date-time amount: type: number description: The amount of the contribution. 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: 12.34 format: double status: type: string description: The current status of the contribution default: Pending enum: - Pending - Declined - Settled - Deposited - InKind paymentType: type: string description: A string representing the method of payment. default: MoneyOrder enum: - Check - MoneyOrder - Cash - CreditCard - InKind - Unknown - ElectronicFundsTransfer - ElectronicPaySystem - Stock - ApplyPay - PaycheckDeduction - WireTransfer codes: type: array description: An array of zero or one [Codes](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: 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. default: Excelsior Consulting notes: type: string description: A note describing the Contribution. default: Donate extendedSourceCode: type: object description: The [Extended Source Code](https://docs.everyaction.com/reference/extended-source-codes) object to apply to the Contribution. Only the extendedSoureCodeId property is required. If this is provided and no `codes` are provided, we’ll look for and apply a matching Source Code 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: extendedSourceCodeId: type: integer description: A unique identifier for an Extended Source Code in this context default: 123 format: int32 financialBatchId: type: integer description: The ID of the associated [Financial Batch](https://docs.everyaction.com/reference/financial-batches). Required if Financial Batch Manager is enabled in the committee context; not allowed if Financial Batch Manager is disabled in the committee context. If specified, the Designation of the Financial Batch must match the Designation of the contribution. default: 825 format: int32 pledge: type: object description: The pledge associated with this contribution properties: pledgeId: type: integer default: 1 format: int32 customFieldValues: type: array description: An array of 1 or more custom fields items: properties: customFieldId: type: integer format: int32 default: '123' description: The ID of the custom field customFieldGroupId: type: integer description: The group ID of the custom field. default: '123' format: int32 assignedValue: type: string description: The value to be assigned to the custom field. If populating a checkbox, set value to 0 or 1. If populating a dropdown, set value to ID of selection. default: test type: object responses: '201': description: '201' content: application/json: examples: Result: value: '1232123' schema: type: integer example: 1232123 default: 0 '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: text/plain: 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: text/plain: 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. '500': description: '500' content: text/plain: 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: - Contributions /contributions/attributionTypes: get: summary: /contributions/attributionTypes description: Retreive a list of Attribution Types which are enabled on a Designation in the current committee. operationId: contributions-attribution-types responses: '200': description: '200' content: application/json: examples: Result: value: "[\n {\n \"vanId\": 303,\n \"amountAttributed\": \"100.50\",\n \"attributionType\": \"DefaultAttribution\",\n \"notes\": \"some notes go here\",\n \"dateThanked\": \"2013-12-30\"\n },\n {\n \"vanId\": 701,\n \"amountAttributed\": \"202.10\",\n \"attributionType\": \"CorporateMatch\",\n \"notes\": \"some notes go here\",\n \"dateThanked\": \"2013-12-30\"\n }\n]" schema: type: array items: type: object properties: vanId: type: integer example: 303 default: 0 amountAttributed: type: string example: '100.50' attributionType: type: string example: DefaultAttribution notes: type: string example: some notes go here dateThanked: type: string example: '2013-12-30' '400': description: '400' content: application/json: examples: Result: value: '{}' schema: type: object properties: {} deprecated: false tags: - Contributions /contributions/payments: post: summary: /contributions/payments description: Records and processes a Contribution with the payment information provided in the request body. operationId: contributions-payments parameters: - name: Idempotency-Key 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 - amount - paymentMethod 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 [Designation](https://docs.everyaction.com/reference/designations) which will receive funds associated with this Contribution. properties: designationId: type: integer default: 18754 format: int32 gatewayId: type: integer description: The payment gateway which will process this Contribution. default: 123456 format: int32 amount: type: number description: Monetary amount of the Contribution. 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: 12.34 format: double paymentMethod: type: object description: Payment information that will be used to process the Contribution. 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 [Codes](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: 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. default: Excelsior Consulting notes: type: string description: A note describing the Contribution. 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. Only the extendedSoureCodeId property is required. If this is provided and no `codes` are provided, we’ll look for and apply a matching Source Code 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: extendedSourceCodeId: type: integer description: A unique identifier for an Extended Source Code in this context default: 123 format: int32 financialBatchId: type: integer description: The ID of the associated [Financial Batch](https://docs.everyaction.com/reference/financial-batches). Required if Financial Batch Manager is enabled in the committee context; not allowed if Financial Batch Manager is disabled in the committee context. If specified, the Designation of the Financial Batch must match the Designation of the contribution. default: 825 format: int32 responses: '201': description: '201' content: application/json: examples: Result: value: '12345' schema: type: integer example: 12345 default: 0 '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: - Contributions /contributions/recentContributions: get: description: '' operationId: get_contributionsrecentContributions responses: '200': description: '' content: application/json: examples: Result: value: items: - contactsContributionId: 20196510 vanId: 114395125 donorName: Anderson, Test donorNameFirstLast: Test Anderson designationId: 3838 designationName: Candidate for VA dateReceived: '2025-03-04T00:00:00Z' amount: 30 amountRemaining: 30 amountRefunded: 0 period: null cycle: null sourceCodeId: null sourceCodeName: null sourceCodeDescription: null sourceCodeStaticPath: null type: Monetary Contribution - contactsContributionId: 20196511 vanId: 114395125 donorName: Anderson, Test donorNameFirstLast: Test Anderson designationId: 3838 designationName: Candidate for VA dateReceived: '2025-01-03T00:00:00Z' amount: -80 amountRemaining: -80 amountRefunded: 0 period: null cycle: null sourceCodeId: null sourceCodeName: null sourceCodeDescription: null sourceCodeStaticPath: null type: Monetary Contribution - contactsContributionId: 20196509 vanId: 114395125 donorName: Anderson, Test donorNameFirstLast: Test Anderson designationId: 3838 designationName: Candidate for VA dateReceived: '2025-01-01T00:00:00Z' amount: 50 amountRemaining: 50 amountRefunded: 0 period: null cycle: null sourceCodeId: null sourceCodeName: null sourceCodeDescription: null sourceCodeStaticPath: null type: Monetary Contribution - contactsContributionId: 20191279 vanId: 114395125 donorName: Anderson, Test donorNameFirstLast: Test Anderson designationId: 3781 designationName: Candidate for NJ dateReceived: '2024-09-11T00:00:00Z' amount: 2000 amountRemaining: 2000 amountRefunded: 0 period: null cycle: null sourceCodeId: null sourceCodeName: null sourceCodeDescription: null sourceCodeStaticPath: null type: Monetary Contribution - contactsContributionId: 20185449 vanId: 114395125 donorName: Anderson, Test donorNameFirstLast: Test Anderson designationId: 2250 designationName: CA Candidate dateReceived: '2024-05-27T00:00:00Z' amount: 203 amountRemaining: 203 amountRefunded: 0 period: null cycle: null sourceCodeId: null sourceCodeName: null sourceCodeDescription: null sourceCodeStaticPath: null type: In-kind Contribution - contactsContributionId: 20184372 vanId: 114395125 donorName: Anderson, Test donorNameFirstLast: Test Anderson designationId: 2250 designationName: CA Candidate dateReceived: '2024-05-27T00:00:00Z' amount: 203 amountRemaining: 203 amountRefunded: 0 period: null cycle: null sourceCodeId: null sourceCodeName: null sourceCodeDescription: null sourceCodeStaticPath: null type: Monetary Contribution nextPageLink: https://api.securevan.com/v4/contributions/recentContributions?vanId=114395125&$skip=6 count: 33 summary: Result '400': description: Bad Request content: application/json: examples: Result: value: errors: - code: Error code text: Error description summary: Result parameters: - name: vanId in: query required: true description: Required; filters to contributions for the given vanId schema: type: integer default: '' - name: designationId in: query required: false description: Filters to contributions for the given designation schema: type: integer default: '' - name: $top in: query required: false description: '' schema: type: integer default: '6' - name: $skip in: query required: false description: '' schema: type: integer default: '' tags: - Contributions summary: Get contributionsrecent contributions x-summary-source: derived /contributions/{alternateIdType}:{alternateId}: get: summary: /contributions/{alternateIdType}:{alternateId} description: 'Retrieve a Contribution record by an Alternate ID. For example `/contributions/onlineReferenceNumber:12345` would retrieve a contribution whose Online Reference Number is 12345. If the specified Contribution does not exist, this endpoint will return an error with HTTP Status Code `404 Not Found`.' operationId: contributions-alternateidtype-alternateid parameters: - name: alternateIdType in: path description: Required; a known contribution identifier type available in the current context. Currently only `onlineReferenceNumber` is supported. schema: type: string default: onlineReferenceNumber required: true - name: alternateId in: path description: Required; an alternate identifier, URL encoded schema: type: string default: '123' required: true responses: '200': description: '200' content: application/json: examples: Result: value: "{\n \"contributionId\": 23453,\n \"contact\": {\n \"vanId\": 10005165\n },\n \"designation\": {\n \"designationId\": 18754,\n },\n \"dateReceived\": \"2013-12-25T12:23:00Z\",\n \"amount\": \"12.34\",\n \"coverCostsAmount\": \"2.34\",\n \"status\": \"Settled\",\n ...\n}" '400': description: '400' content: application/json: examples: Result: value: "{\n \"errors\": [\n {\n \"code\": \"Error code\",\n \"text\": \"Error description\"\n }\n ]\n}" schema: type: object properties: errors: type: array items: type: object properties: code: type: string example: Error code text: type: string example: Error description '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. deprecated: false tags: - Contributions /contributions/{contributionId}: get: summary: /contributions/{contributionId} description: 'Retrieve a Contribution by `contributionId` If the specified Contribution does not exist, this endpoint will return an error with HTTP Status Code `404 Not Found`.' operationId: contributions-contributionid parameters: - name: contributionId in: path description: Unique contribution identifier available in the current context schema: type: integer format: int32 default: 4482 required: true - name: $expand in: query description: Valid `$expand` sections are are `disclosureFieldValues`, `externalIds`, `generalLedgerFund`, `costCenter`, and `jointFundraisingEntity`. schema: type: string responses: '200': description: '200' content: application/json: examples: Result: value: "{\n \"contributionId\": 23453,\n \"contact\": {\n \"vanId\": 10005165\n },\n \"designation\": {\n \"designationId\": 18754,\n },\n \"dateReceived\": \"2013-12-25T12:23:00Z\",\n \"amount\": \"12.34\",\n \"coverCostsAmount\": \"2.34\",\n \"status\": \"Settled\",\n ...\n}" '400': description: '400' content: application/json: examples: Result: value: "{\n \"errors\": [\n {\n \"code\": \"Error code\",\n \"text\": \"Error description\"\n }\n ]\n}" schema: type: object properties: errors: type: array items: type: object properties: code: type: string example: Error code text: type: string example: Error description '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. deprecated: false tags: - Contributions /contributions/{contributionId}/adjustments: post: summary: /contributions/{contributionId}/adjustments description: 'Use this endpoint to adjust an existing contribution with the properties provided in the request body. Only contributions processed by the CRM are supported. **Currently “Refund” is the only adjustment type supported by the API. Using this adjustment type will issue a refund to the donor.**' operationId: contributions-contributionid-adjustments parameters: - name: contributionId in: path description: Unique contribution identifier available in the current context schema: type: integer format: int32 default: 4482 required: true requestBody: content: application/json: schema: type: object properties: adjustmentType: type: string default: Refund amount: type: number description: Monetary amount of the adjustment. Must be between $0.01 and $999,999.99, inclusive. Values with more than 2 digits after the decimal point will not be accepted. default: 10 format: double datePosted: type: string default: '2020-03-31' format: date responses: '200': description: '200' content: application/json: examples: Result: value: "{\n \"contributionId\" : 123,\n \"adjustmentId\": 2,\n \"originalAmount\" : 20.00,\n \"remainingAmount\" : 10.00,\n \"dateAdjusted\": \"2020-03-04\"\n}" schema: type: object properties: contributionId: type: integer example: 123 default: 0 adjustmentId: type: integer example: 2 default: 0 originalAmount: type: integer example: 20 default: 0 remainingAmount: type: integer example: 10 default: 0 dateAdjusted: type: string example: '2020-03-04' '400': description: '400' content: application/json: examples: Result: value: "{\n \"errors\": [\n {\n \"code\": \"Error code\",\n \"text\": \"Error description\"\n }\n ]\n}" schema: type: object properties: errors: type: array items: type: object properties: code: type: string example: Error code text: type: string example: Error description '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: '' deprecated: false tags: - Contributions /contributions/{contributionId}/attributions/{vanId}: put: summary: /contributions/{contributionId}/attributions/{vanId} description: 'Create or update an Attribution record on the given Contribution for a Person. If there is an existing Attribution for the given Person on the given Contribution, it will be updated to match the Attribution provided with this request. If there is not an existing Attribution, one will be created. Accepts an Attribution object. The `vanId` property of the Attribution object must match the value of the `vanId` parameter provided in the route. If `amountAttributed` is not provided, it will default to the remaining amount of the Contribution. If `attributionType` is not provided, it will default to `DefaultAttribution`. If the specified Contribution or Person does not exist, this endpoint will return an error with HTTP Status Code `404 Not Found`. If successful, the endpoint responds with HTTP Status Code `204 No Content` if an existing Attribution has been updated. If a new Attribution has been created, this endpoint responds with HTTP Status Code `201 Created`.' operationId: contributions-contributionid-attributions-vanid parameters: - name: contributionId in: path description: Unique contribution identifier available in the current context schema: type: integer format: int32 default: 4482 required: true - name: vanId in: path description: Unique person identifier available in the current context schema: type: string default: '215501' required: true requestBody: content: application/json: schema: type: object properties: vanId: type: string description: Unique identifier for the attributed contact. Represents contacts who acted as fundraisers, rather than contributors. default: '215501' amountAttributed: type: string description: Optional; The amount of the attribution. Values that have more than 2 digits after the decimal point will not be accepted. If no amount is provided, default to contribution amount. default: '100.00' attributionType: type: string description: Optional; A string representing the attribution type. See below for valid values of Attribution Type. If no type is provided, default to “DefaultAttribution” type default: BoardMemberGiving dateThanked: type: string description: Optional; The date on which the attributed contact was thanked for the contribution. default: '2019-10-08' format: date notes: type: string description: Optional; A note describing the attribution. Max length of 100 characters. default: This will be created or updated responses: '201': description: '201' content: application/json: examples: Result: value: '' '204': description: '204' content: application/json: examples: Result: value: '' '400': description: '400' content: application/json: examples: Result: value: "{\n \"errors\": [\n {\n \"code\": \"Error code\",\n \"text\": \"Error description\"\n }\n ]\n}" schema: type: object properties: errors: type: array items: type: object properties: code: type: string example: Error code text: type: string example: Error description '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. deprecated: false tags: - Contributions delete: summary: /contributions/{contributionId}/attributions/{vanId} description: Use this endpoint to delete an Attribution for a Person from a Contribution. operationId: delete-contributions-contributionid-attributions-vanid parameters: - name: contributionId in: path description: Unique contribution identifier available in the current context schema: type: integer format: int32 default: 4482 required: true - name: vanId in: path description: Unique person identifier available in the current context schema: type: string default: '215501' required: true responses: '204': description: '204' content: application/json: examples: Result: value: '' '400': description: '400' content: application/json: examples: Result: value: "{\n \"errors\": [\n {\n \"code\": \"Error code\",\n \"text\": \"Error description\"\n }\n ]\n}" schema: type: object properties: errors: type: array items: type: object properties: code: type: string example: Error code text: type: string example: Error description '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. deprecated: false tags: - Contributions 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 - https://docs.everyaction.com/reference/foldersfolderidmapregionsmapregionidrefresh.md - https://docs.everyaction.com/reference/foldersfolderidmapregionsrefresh.md - https://docs.everyaction.com/reference/get-campaign-by-id.md - https://docs.everyaction.com/reference/get-campaigns.md - https://docs.everyaction.com/reference/get-codes.md - https://docs.everyaction.com/reference/get-departments.md - https://docs.everyaction.com/reference/get-designations.md - https://docs.everyaction.com/reference/get-employers.md - https://docs.everyaction.com/reference/get-events.md - https://docs.everyaction.com/reference/get-people-personid-type-personid.md - https://docs.everyaction.com/reference/get-people-vanid.md - https://docs.everyaction.com/reference/get-people.md - https://docs.everyaction.com/reference/introspection.md - https://docs.everyaction.com/reference/jobclasses-1.md - https://docs.everyaction.com/reference/jobclasses.md - https://docs.everyaction.com/reference/jobclassesjobclassid.md - https://docs.everyaction.com/reference/locations-1.md - https://docs.everyaction.com/reference/locations-2.md - https://docs.everyaction.com/reference/locationsfindorcreate.md - https://docs.everyaction.com/reference/locationslocationid-1.md - https://docs.everyaction.com/reference/locationslocationid.md - https://docs.everyaction.com/reference/memberstatuses-1.md - https://docs.everyaction.com/reference/memberstatuses.md - https://docs.everyaction.com/reference/memberstatusesmemberstatusid.md - https://docs.everyaction.com/reference/minivanexports.md - https://docs.everyaction.com/reference/minivanexportsminivanexportid.md - https://docs.everyaction.com/reference/notescategories.md - https://docs.everyaction.com/reference/notescategoriesnotecategoryid.md - https://docs.everyaction.com/reference/notescategorytypes.md - https://docs.everyaction.com/reference/onlineactionsforms.md - https://docs.everyaction.com/reference/onlineactionsformsformtrackingid.md - https://docs.everyaction.com/reference/patch-codes-codeid.md - https://docs.everyaction.com/reference/patch-employers-employerid.md - https://docs.everyaction.com/reference/patch-events-eventid.md - https://docs.everyaction.com/reference/people-find.md - https://docs.everyaction.com/reference/people-findorcreate.md - https://docs.everyaction.com/reference/people-persoid-type-personid.md - https://docs.everyaction.com/reference/people-personidtype-personid-canvassresponses.md - https://docs.everyaction.com/reference/people-personidtype-personid-codes-codeid.md - https://docs.everyaction.com/reference/people-personidtype-personid-codes.md - https://docs.everyaction.com/reference/people-personidtype-personid-disclosurefieldvalues.md - https://docs.everyaction.com/reference/people-personidtype-personid-notes.md - https://docs.everyaction.com/reference/people-vanid-activistcodes.md - https://docs.everyaction.com/reference/people-vanid-canvassresponses.md - https://docs.everyaction.com/reference/people-vanid-codes-codeid.md - https://docs.everyaction.com/reference/people-vanid-codes.md - https://docs.everyaction.com/reference/people-vanid-delete.md - https://docs.everyaction.com/reference/people-vanid-disclosurefieldvalues.md - https://docs.everyaction.com/reference/people-vanid-membership.md - https://docs.everyaction.com/reference/people-vanid-mergeinto.md - https://docs.everyaction.com/reference/people-vanid-myactivistflags.md - https://docs.everyaction.com/reference/people-vanid-names.md - https://docs.everyaction.com/reference/people-vanid-notes-noteid.md - https://docs.everyaction.com/reference/people-vanid-notes.md - https://docs.everyaction.com/reference/people-vanid-relationships.md - https://docs.everyaction.com/reference/people-vanid.md - https://docs.everyaction.com/reference/peoplepersonidcanvassresponsesreferenceid.md - https://docs.everyaction.com/reference/peoplevanidcanvassresponsescanvassresponseid-copy.md - https://docs.everyaction.com/reference/peoplevanidcanvassresponsescanvassresponseid.md - https://docs.everyaction.com/reference/peoplevanidcanvassresponsesreferenceid.md - https://docs.everyaction.com/reference/post-bargainingunits.md - https://docs.everyaction.com/reference/post-codes.md - https://docs.everyaction.com/reference/post-contributions.md - https://docs.everyaction.com/reference/post-disbursements.md - https://docs.everyaction.com/reference/post-employers.md - https://docs.everyaction.com/reference/post-events.md - https://docs.everyaction.com/reference/post-people-vanid-notes.md - https://docs.everyaction.com/reference/printedlists.md - https://docs.everyaction.com/reference/printedlistsprintedlistnumber.md - https://docs.everyaction.com/reference/pronouns.md - https://docs.everyaction.com/reference/put-codes-codeid.md - https://docs.everyaction.com/reference/put-codes.md - https://docs.everyaction.com/reference/put-events-eventid.md - https://docs.everyaction.com/reference/relationships-1.md - https://docs.everyaction.com/reference/reportedethnicities.md - https://docs.everyaction.com/reference/reportedgenders.md - https://docs.everyaction.com/reference/reportedlanguagepreferences.md - https://docs.everyaction.com/reference/reportedraces.md - https://docs.everyaction.com/reference/reportedsexualorientations.md - https://docs.everyaction.com/reference/savedlists.md - https://docs.everyaction.com/reference/savedlistssavedlistid.md - https://docs.everyaction.com/reference/scheduletypes-1.md - https://docs.everyaction.com/reference/scheduletypes.md - https://docs.everyaction.com/reference/scheduletypesscheduletypeid.md - https://docs.everyaction.com/reference/scores-1.md - https://docs.everyaction.com/reference/scoresscoreid.md - https://docs.everyaction.com/reference/scoresscoreidcommitteeaccess.md - https://docs.everyaction.com/reference/scoreupdates.md - https://docs.everyaction.com/reference/scoreupdatesscoreupdateid-1.md - https://docs.everyaction.com/reference/scoreupdatesscoreupdateid.md - https://docs.everyaction.com/reference/shifttypes-1.md - https://docs.everyaction.com/reference/shifttypes.md - https://docs.everyaction.com/reference/shifttypesshifttypeid.md - https://docs.everyaction.com/reference/signups-1.md - https://docs.everyaction.com/reference/signups-2.md - https://docs.everyaction.com/reference/signupseventsignupid-1.md - https://docs.everyaction.com/reference/signupseventsignupid-2.md - https://docs.everyaction.com/reference/signupseventsignupid.md - https://docs.everyaction.com/reference/signupsstatuses.md - https://docs.everyaction.com/reference/smssync.md - https://docs.everyaction.com/reference/stories-1.md - https://docs.everyaction.com/reference/storiesstoryid.md - https://docs.everyaction.com/reference/supportergroups-1.md - https://docs.everyaction.com/reference/supportergroups.md - https://docs.everyaction.com/reference/supportergroupssupportergroupid-1.md - https://docs.everyaction.com/reference/supportergroupssupportergroupid.md - https://docs.everyaction.com/reference/supportergroupssupportergroupidpeoplevanid-1.md - https://docs.everyaction.com/reference/supportergroupssupportergroupidpeoplevanid.md - https://docs.everyaction.com/reference/surveyquestions.md - https://docs.everyaction.com/reference/surveyquestionssurveyquestionid-1.md - https://docs.everyaction.com/reference/surveyquestionssurveyquestionid.md - https://docs.everyaction.com/reference/targetexportjobs.md - https://docs.everyaction.com/reference/targetexportjobsexportjobid.md - https://docs.everyaction.com/reference/targets-1.md - https://docs.everyaction.com/reference/targetstargetid.md - https://docs.everyaction.com/reference/usersuseriddistrictfieldvalues-1.md - https://docs.everyaction.com/reference/usersuseriddistrictfieldvalues-2.md - https://docs.everyaction.com/reference/usersuseriddistrictfieldvalues.md - https://docs.everyaction.com/reference/voterregistrationbatches-1.md - https://docs.everyaction.com/reference/voterregistrationbatches.md - https://docs.everyaction.com/reference/voterregistrationbatchesbatchid.md - https://docs.everyaction.com/reference/voterregistrationbatchesbatchidpeople.md - https://docs.everyaction.com/reference/voterregistrationbatchesprogramtypes.md - https://docs.everyaction.com/reference/voterregistrationbatchesregistrationforms.md - https://docs.everyaction.com/reference/voterregistrationbatchesstatesstatesupportedfields.md - https://docs.everyaction.com/reference/worksites-1.md - https://docs.everyaction.com/reference/worksitesworksiteid.md - https://docs.everyaction.com/reference/worksitesworksiteiddelete.md - https://docs.everyaction.com/reference/worksitesworksiteidput.md - https://docs.everyaction.com/reference/worksitesworksiteidworkareas.md - https://docs.everyaction.com/reference/worksitesworksiteidworkareasput.md - https://docs.everyaction.com/reference/worksitesworksiteidworkareasworkareaiddelete.md merge: pages: 219 deduped: 218 conflicts_kept_first: 0