openapi: 3.0.0 info: title: Agency Incoming API version: '1.0' description: API spec for agencies to process incoming requests from Freede. servers: [] paths: /intent/communication: post: summary: Agency confirmation of intent to communicate with consumer tags: - Intents responses: '200': description: OK content: application/json: schema: type: object properties: allowed: type: boolean required: - allowed '401': description: Unauthorized operationId: post-intent-communication description: |- Agency confirmation of intent to communicate with consumer. Example: Freede will make this call to the agency when the Freede Score triggers a recommendation for the agency to communicate with the consumer via the Freede Platform. requestBody: content: application/json: schema: type: object properties: id: type: string description: Intent ID consumer_ref: type: string description: Consumer Reference method: type: integer description: 0 = Popup enum: - 0 - 1 - 2 type: type: integer minimum: 0 maximum: 15 /registration: post: summary: Register consumer tags: - Registration responses: '200': description: OK content: application/json: schema: type: object properties: accounts: type: array items: $ref: '#/components/schemas/Account' first: type: string last: type: string ref: type: string examples: {} '401': description: Unauthorized operationId: post-registration parameters: - schema: type: string in: header name: Freede-Verification-Key description: SHA256 Hash of Token and API key - schema: type: string in: header name: Freede-API-Version description: Freede Agency Incoming API Version - schema: type: string in: header name: Freede-Verification-Token description: Token Salt description: Freede will submit this POST request when a consumer is attempting to register with the agency. Agency may perform their own validation checks and return a response. The Verify bool is provided as an indication if this is a check only or if agency should mark them as registered. requestBody: content: application/json: schema: type: object properties: first: type: string last: type: string address: type: string address2: type: string city: type: string state: type: string zip: type: string phone: type: string email: type: string format: email regcode: type: string verify: type: boolean optins: $ref: '#/components/schemas/optins' required: - regcode - verify examples: example-1: value: first: string last: string address: string address2: string city: string state: string zip: string phone: string email: user@example.com regcode: string verify: true optins: sms: true phone: true email: true push: true default: email description: Consumer registration information /auth: post: summary: Auth consumer responses: '200': description: OK content: application/json: schema: type: object properties: accounts: type: array items: $ref: '#/components/schemas/Account' first: type: string last: type: string ref: type: string examples: {} '401': description: Unauthorized operationId: post-auth parameters: - schema: type: string in: header name: Freede-Verification-Key description: SHA256 Hash of Token and API key - schema: type: string in: header name: Freede-API-Version description: Freede Agency Incoming API Version - schema: type: string in: header name: Freede-Verification-Token description: Token Salt description: 'Freede will submit this POST request when a consumer is attempting to authenticate with the agency, outside of a registration. Agency may perform their own validation checks and return a response.' requestBody: content: application/json: schema: type: object description: Defined by the agency auth form examples: {} description: Consumer registration information tags: - Auth parameters: [] '/account/{accountNum}': get: summary: Get account details tags: - Accounts responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Account' examples: Example: value: type: medical interest_bearing: true ref: string desc: string status_reason: string status: 0 balance_current: 0 balance_start: 0 balance_buckets: - name: string balance_current: 0 balance_start: 0 type: interest agency: ref: string last_payment_amt: 0 last_activity: string last_payment_date: string creditor: ref: string last_payment_amt: 0 last_activity: string last_payment_date: string name: string consumer: ref: string first: string last: string '401': description: Unauthorized operationId: get-account parameters: - schema: type: string in: header name: Freede-Verification-Key description: SHA256 Hash of Token and API key - schema: type: string in: header name: Freede-API-Version description: Freede Agency Incoming API Version - schema: type: string in: header name: Freede-Verification-Token description: Token Salt description: Endpoint to get the account details from the agency parameters: - schema: type: string name: accountNum in: path required: true description: Agency account number '/consumer/{consumerRef}/form': post: summary: Consumer submitted form responses: '200': description: OK operationId: post-forms parameters: - schema: type: string in: header name: Freede-Verification-Key description: SHA256 Hash of Token and API key - schema: type: string in: header name: Freede-API-Version description: Freede Agency Incoming API Version - schema: type: string in: header name: Freede-Verification-Token description: Token Salt requestBody: content: application/json: schema: type: object properties: type: type: string enum: - dispute - attorney - bankruptcy form: oneOf: - $ref: '#/components/schemas/DisputeForm' - $ref: '#/components/schemas/AttorneyForm' - $ref: '#/components/schemas/BankruptcyForm' description: |- This is the endpoint used by agencies to receive forms the consumer has submitted. Examples are for notification of dispute, attorney handling, and/or bankruptcy. For certain scenarios, the agency should update the account status using the Update Consumer Account API call. tags: - Consumers parameters: - schema: type: string name: consumerRef in: path required: true '/consumer/{consumerRef}': parameters: - schema: type: string name: consumerRef in: path required: true put: summary: Update consumer demographics tags: - Consumers responses: '200': description: OK operationId: put-consumer-consumerRef parameters: - schema: type: string in: header name: Freede-Verification-Key description: SHA256 Hash of Token and API key - schema: type: string in: header name: Freede-API-Version description: Freede Agency Incoming API Version - schema: type: string in: header name: Freede-Verification-Token description: Token Salt requestBody: content: application/json: schema: description: '' type: object x-examples: example-1: first: string last: string address: string address2: string city: string state: string zip: string email: string phone: string ref: string properties: address: type: string minLength: 1 address2: type: string minLength: 1 city: type: string minLength: 1 state: type: string minLength: 2 maxLength: 2 zip: type: string email: type: string minLength: 1 phone: type: string minLength: 11 maxLength: 11 required: - address - address2 - city - state - zip - email - phone examples: Example: value: address: string address2: string city: string state: TX zip: string email: string phone: '12223334444' description: 'Endpoint to receive updated consumer demographics. When the consumer updates their demographic fields in the Freede Platform, this API call will be used to provide these updates to the agency. The agency can then update their system of record.' delete: summary: Deregister consumer operationId: delete-consumer-consumerRef parameters: - schema: type: string in: header name: Freede-Verification-Key description: SHA256 Hash of Token and API key - schema: type: string in: header name: Freede-API-Version description: Freede Agency Incoming API Version - schema: type: string in: header name: Freede-Verification-Token description: Token Salt responses: '200': description: OK description: |- Freede will use this API call to notify the agency of a consumer that has been deregistered from the Freede Platform. Used to update the agency system of record and resume alternative collection tactics, if appropriate. tags: - Consumers get: summary: Get Consumer Info operationId: get-consumer-consumerRef responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetConsumer' examples: Example 1: value: first: string last: string address: string address2: string city: string state: string zip: string phone: string optins: sms: true phone: true email: true push: true esign: true default: sms tags: - Consumers '/consumer/{consumerRef}/accounts': parameters: - schema: type: string name: consumerRef in: path required: true get: summary: Get Consumer Accounts operationId: get-consumer-accounts responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/Account' example: - ref: string desc: string status_reason: string status: 0 balance_current: 0 balance_start: 0 balance_buckets: - name: string balance_current: 0 balance_start: 0 type: interest agency: ref: string last_payment_amt: 0 last_activity: string last_payment_date: string creditor: ref: string last_payment_amt: 0 last_activity: string last_payment_date: string name: string type: medical interest_bearing: true description: '' parameters: - schema: type: string format: date-time in: query name: last_updated description: Return accounts that have been updated since the given datetime string tags: - Consumers '/consumer/{consumerRef}/convenience_fee/lookup': parameters: - schema: type: string name: consumerRef in: path required: true post: summary: Consumer Convenience Fee Lookup operationId: post-consumer-consumerRef-account-accountNum-convenience_fee-lookup responses: '200': description: OK content: application/json: schema: type: object properties: fee: type: number x-stoplight: id: 501ncxgfplk6n minimum: 0 disclosure: type: string x-stoplight: id: zx03lcq9km8dr required: - fee '401': description: Unauthorized description: Allows for the lookup of the convenience fee for a consumer account payment requestBody: content: application/json: schema: type: object properties: method: type: string x-stoplight: id: fsgmqv0o9ka4c enum: - card - bank description: Payment method type amount: type: number x-stoplight: id: i71ihy1mhbgre minimum: 0 description: Amount of payment billing_state: type: string x-stoplight: id: z3h3j65ozyd4h description: ISO2 State Code account_ref: type: string x-stoplight: id: pn10b1y7e22mg required: - method - amount - billing_state - account_ref tags: - Consumers '/consumer/{consumerRef}/optins': parameters: - schema: type: string name: consumerRef in: path required: true description: Agency consumer reference put: summary: Update consumer optins tags: - Consumers responses: '200': description: OK operationId: put-consumer-consumerRef-optins parameters: - schema: type: string in: header name: Freede-Verification-Key description: SHA256 Hash of Token and API key - schema: type: string in: header name: Freede-API-Version description: Freede Agency Incoming API Version - schema: type: string in: header name: Freede-Verification-Token description: Token Salt requestBody: content: application/json: schema: $ref: '#/components/schemas/optins' examples: Example: value: sms: true phone: true email: true push: true esign: true default: email description: Endpoint to receive updated consumer optins '/consumer/{consumerRef}/conversation': parameters: - schema: type: string name: consumerRef in: path required: true post: summary: Consumer conversation tags: - Consumers responses: '200': description: OK operationId: post-consumer-consumerRef-conversation parameters: - schema: type: string in: header name: Freede-Verification-Key description: SHA256 Hash of Token and API key - schema: type: string in: header name: Freede-API-Version description: Freede Agency Incoming API Version - schema: type: string in: header name: Freede-Verification-Token description: Token Salt requestBody: content: application/json: schema: $ref: '#/components/schemas/Conversation' examples: Chat Example: value: type: chat when: '2019-08-24T14:15:22Z' id: 5fa4c5a7bdb82a9e6e0a9ae9 status: open description: Endpoint to receive notice of consumer conversation. Can use Id to retrieve conversation details from Agency API '/consumer/{consumerRef}/conversation/{conversationId}': parameters: - schema: type: string name: consumerRef in: path required: true - schema: type: string name: conversationId in: path required: true put: summary: Update consumer conversation operationId: put-consumer-consumerRef-conversationId responses: '200': description: OK description: Update the status of the consumer conversation requestBody: content: application/json: schema: type: object properties: when: type: string description: When the status change happened format: date-time status: type: string description: Status of the conversation enum: - closed required: - when - status examples: example-1: value: when: '2019-08-24T14:15:22Z' status: closed tags: - Consumers '/consumer/{consumerRef}/conversation/{conversationId}/event': parameters: - schema: type: string name: consumerRef in: path required: true - schema: type: string name: conversationId in: path required: true post: summary: Send consumer conversation event operationId: post-consumer-conversation-event responses: '200': description: OK '401': description: Unauthorized requestBody: content: application/json: schema: type: object properties: when: type: string x-stoplight: id: nhlqrc6xyx1kj format: date-time event: type: string x-stoplight: id: lua3hxrrgzp0b description: What conversation event took place metadata: type: object x-stoplight: id: vm2ac2bhil0y4 description: Any details provided with the event required: - when - event tags: - Consumers '/account/{accountNum}/payments': parameters: - schema: type: string name: accountNum in: path required: true post: summary: Account Payment tags: - Payments responses: '200': description: OK '401': description: Unauthorized operationId: post-account-accountNum-payment requestBody: content: application/json: schema: $ref: '#/components/schemas/PaymentRequest' examples: {} application/xml: schema: type: object properties: {} description: |- This endpoint is used to notify the agency of a consumer’s current and future-scheduled payments remitted via the Freede Platform. Used to update the agency system of record and to comply with FDCPA regulations and state law related to post dated payment instruments. parameters: - schema: type: string in: header name: Freede-Verification-Key description: SHA256 Hash of Token and API key - schema: type: string in: header name: Freede-API-Version description: Freede Agency Incoming API Version - schema: type: string in: header name: Freede-Verification-Token description: Token Salt get: summary: Get Account Payments operationId: get-account-accountNum-payment responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/Payment' '401': description: Unauthorized security: [] parameters: - schema: type: string in: header name: Freede-Verification-Key description: SHA256 Hash of Token and API key - schema: type: string in: header name: Freede-API-Version description: Freede Agency Incoming API Version - schema: type: string in: header name: Freede-Verification-Token description: Token Salt - schema: type: string in: query name: last_updated description: Return payments that have been updated since the given datetime string description: Get account payments tags: - Payments '/account/{accountNum}/payments/{paymentId}': parameters: - schema: type: string name: paymentId in: path required: true - schema: type: string name: accountNum in: path required: true put: summary: Update payment tags: - Payments responses: '200': description: OK '401': description: Unauthorized operationId: put-account-accountNum-payment-paymentId parameters: - schema: type: string in: header name: Freede-Verification-Key description: SHA256 Hash of Token and API key - schema: type: string in: header name: Freede-API-Version description: Freede Agency Incoming API Version - schema: type: string in: header name: Freede-Verification-Token description: Token Salt description: |- This endpoint is used to notify the agency of modifications made to payments previously reported in the Account Payment API call. Used to update the agency system of record and to comply with FDCPA regulations and state law related to post dated payment instruments. requestBody: content: application/json: schema: type: object properties: status: type: integer description: '0=scheduled,5=canceled' when: type: string description: When the status change happened scheduled: type: string description: when the payment is scheduled if it's a scheduled payment required: - status - when '/account/{accountNum}/offer': parameters: - schema: type: string name: accountNum in: path required: true post: summary: Submit settlement offer tags: - Offers responses: '200': description: OK content: application/json: schema: type: object properties: status: type: integer description: '0 = rejected, 1 = accepted, 2 = counter, 3 = in review' enum: - 0 - 1 - 2 - 3 counter: type: number offer_id: type: string x-stoplight: id: m1sw2etzf2zye required: - status '401': description: Unauthorized operationId: post-account-accountNum-offer parameters: - schema: type: string in: header name: Freede-Verification-Key description: SHA256 Hash of Token and API key - schema: type: string in: header name: Freede-API-Version description: Freede Agency Incoming API Version - schema: type: string in: header name: Freede-Verification-Token description: Token Salt description: 'When an agency chooses to accept settlement offers from a consumer that can not be immediately approve or declined based on a previously-established ruleset, this API call will be used to notify the agency of a settlement offer from the consumer requiring review and consideration for approval.' requestBody: content: application/json: schema: type: object properties: id: type: string description: Offer Id for reference if there is a manual review. amount: type: number description: Amount consumer has offered to settle the account consumer_ref: type: string description: Consumer ref that has submitted this request offer_id: type: string x-stoplight: id: 74i5sf10vp0iy method_id: type: string x-stoplight: id: lm6z5kebu6olt method: type: string x-stoplight: id: 3pkgflkq5dm6w required: - id - amount - consumer_ref '/account/{accountNum}/payment_plans/config': parameters: - schema: type: string name: accountNum in: path required: true get: summary: Get Payment Plan Configuration tags: - Payments responses: '200': description: OK content: application/json: schema: type: object properties: single_eligible: type: boolean x-stoplight: id: svx2nshlv9ysy eligible: type: boolean x-stoplight: id: ws61ukld7qvo0 min_payment: type: number x-stoplight: id: auo9zs9qwvnwc max_months: type: number x-stoplight: id: 6fvmos8cr1buz '201': description: Created operationId: get-account-accountNum-paymentplans description: Returns the available payment plan options for an account '/account/{accountNum}/payment_plans': parameters: - schema: type: string name: accountNum in: path required: true get: summary: Get Payment Plans tags: - Payments responses: '200': description: OK operationId: getaccount-accountNum-paymentplans requestBody: content: application/json: schema: type: object x-examples: Example 1: plans: - id: string type: string amount: 10 created: datetime properties: plans: type: array items: type: object properties: id: type: string type: type: string amount: type: number created: type: string format: date-time status: type: string x-stoplight: id: b4yofke2cyyh9 '/consumer/{consumerRef}/payment_methods': parameters: - schema: type: string name: consumerRef in: path required: true get: summary: Get Consumer Stored Payment Methods tags: - Consumers responses: '200': description: OK content: application/json: schema: type: array items: x-stoplight: id: dneu4zgdpu1ou type: object properties: id: type: string x-stoplight: id: r86j7hws1qfrf method_desc: type: string x-stoplight: id: 2j7wu44pofow7 method_type: type: string x-stoplight: id: o4lmijv1d7317 operationId: get-consumer-consumerRef-payment_methods post: tags: - Consumers summary: Create Consumer Payment Method operationId: post-consumer-consumerRef-payment_methods responses: '200': description: OK content: application/json: schema: anyOf: - $ref: '#/components/schemas/PaymentMethodBank' - $ref: '#/components/schemas/PaymentMethodCard' '/consumer/{consumerRef}/payment_methods/{methodId}': parameters: - schema: type: string name: consumerRef in: path required: true - schema: type: string name: methodId in: path required: true delete: summary: Delete Stored Payment Method operationId: delete-consumer-consumerRef-payment_methods-methodId responses: '200': description: OK tags: - Consumers put: summary: Update Consumer Payment Method operationId: put-consumer-consumerRef-payment_methods-methodId responses: '200': description: OK tags: - Consumers requestBody: content: application/json: schema: anyOf: - $ref: '#/components/schemas/PaymentMethodCard' - $ref: '#/components/schemas/PaymentMethodBank' description: '' '/account/{accountNum}/payment_plans/{planId}/payment_method': parameters: - schema: type: string name: planId in: path required: true - schema: type: string name: accountNum in: path required: true put: summary: Update Payment Plan Payment Method operationId: put-account-accountNum-payment_plans-payment_method responses: '200': description: OK requestBody: content: application/json: schema: type: object properties: method_id: type: string x-stoplight: id: ny7o8219xgqe4 method: x-stoplight: id: t9xpnyok7x3qi anyOf: - $ref: '#/components/schemas/PaymentMethodBank' - $ref: '#/components/schemas/PaymentMethodCard' store_method: type: boolean x-stoplight: id: 08kvmm51oj6kj tags: - Accounts tags: - name: Accounts - name: Consumers - name: Forms - name: Registration components: schemas: Account: description: Agency Account type: object properties: ref: type: string minLength: 1 description: Agency account reference number desc: type: string minLength: 1 description: Agency account description status_reason: type: string minLength: 1 status: type: integer minimum: 0 maximum: 4 description: '0=active,1=closed paid in full, 2=closed settlement, 3=disputed, 4=pulled' balance_current: type: number balance_start: type: number balance_buckets: type: array uniqueItems: true minItems: 1 description: 'List of balance buckets to display. If a bucket is provided and is null or blank, we will not display it. We display the exact value provided, given it is a number with a precision of 2. Any other values will not be processed.' items: type: object properties: name: type: string minLength: 1 balance_current: type: number balance_start: type: number type: type: string minLength: 1 enum: - interest - principal - fees - other required: - name - balance_current - balance_start - type agency: type: object required: - ref properties: ref: type: string minLength: 1 last_payment_amt: type: number last_activity: type: string minLength: 1 last_payment_date: type: string minLength: 1 placement_date: type: string x-stoplight: id: jb3fad44txafm creditor: type: object required: - ref - name properties: ref: type: string minLength: 1 last_payment_amt: type: number last_activity: type: string minLength: 1 last_payment_date: type: string minLength: 1 delinquency_date: type: string x-stoplight: id: uw1mys7v3lev7 name: type: string minLength: 1 type: type: string enum: - medical - student - other interest_bearing: type: boolean statute_date: type: string x-stoplight: id: j47o6aebvt7j0 description: Date account out of statute of limitations notice_date: type: string x-stoplight: id: k2x495ykhm2n8 description: Date notice was provided flags: type: array x-stoplight: id: 25g8yi458axm4 description: 'Any account flags: repossession, disablement, credit_reporting' items: x-stoplight: id: qbe9ssln42ffx type: string required: - ref - status - balance_current - balance_start - agency - creditor - type - interest_bearing Attorney: description: '' type: object properties: name: type: string minLength: 1 lawfirm: type: string minLength: 1 phone: type: string minLength: 1 fax: type: string minLength: 1 email: type: string minLength: 1 website: type: string address1: type: string address2: type: string address3: type: string city: type: string state: type: string zip: type: string Bankruptcy: description: '' type: object properties: chapter: type: string filing_date: type: string format: date discharge_date: type: string format: date case_number: type: string district_court: type: string Consumer: description: '' type: object properties: first: type: string minLength: 1 last: type: string minLength: 1 address: type: string minLength: 1 address2: type: string minLength: 1 city: type: string minLength: 1 state: type: string minLength: 1 zip: type: string minLength: 1 email: type: string minLength: 1 phone: type: string minLength: 1 x-examples: example-1: first: string last: string address: string address2: string city: string state: string zip: string email: string phone: string GetConsumer: type: object x-examples: example-1: first: string last: string address: string address2: string city: string state: string zip: string email: string phone: string x-stoplight: id: be94b85ac0e64 title: GetConsumer properties: first: type: string minLength: 1 last: type: string minLength: 1 address: type: string minLength: 1 address2: type: string minLength: 1 city: type: string minLength: 1 state: type: string minLength: 1 zip: type: string minLength: 1 phone: type: string minLength: 1 optins: $ref: '#/components/schemas/optins' email: type: string x-stoplight: id: fcz7m35bbpz1f description: Email will not override the email on file if one exists. To be used in situations where Freede does not already have an email for a consumer. Conversation: type: object x-examples: Chat Example: type: chat when: '2019-08-24T14:15:22Z' id: 5fa4c5a7bdb82a9e6e0a9ae9 status: open properties: type: type: string minLength: 1 enum: - sms - email - chat - phone - knute description: Conversation channel type when: type: string minLength: 1 format: date-time description: Datetime of when the conversation happened id: type: string minLength: 1 description: Conversation ID status: type: string description: Status of the conversation enum: - open - closed required: - type - when - id - status DisputeForm: title: DisputeForm type: object properties: amount: type: number reason: type: string bankruptcy: $ref: '#/components/schemas/Bankruptcy' attorney: $ref: '#/components/schemas/Attorney' accounts: type: array items: type: string files: type: array items: type: object properties: name: type: string base64: type: string mime: type: string BankruptcyForm: title: Bankruptcy Form type: object properties: reason: type: string bankruptcy: $ref: '#/components/schemas/Bankruptcy' attorney: $ref: '#/components/schemas/Attorney' accounts: type: array items: type: string files: type: array items: type: object properties: name: type: string base64: type: string mime: type: string AttorneyForm: title: AttorneyForm type: object properties: reason: type: string attorney: $ref: '#/components/schemas/Attorney' accounts: type: array items: type: string files: type: array items: type: object properties: name: type: string base64: type: string mime: type: string optins: title: optins type: object properties: sms: type: boolean phone: type: boolean email: type: boolean esign: type: boolean default: type: string description: Default mode of communication. enum: - sms - phone - email - push Payment: type: object x-examples: Example 1: id: string ref_id: string amount: 0 when: '2019-08-24T14:15:22Z' consumer_ref: string method_desc: bank status: 0 scheduled: '2019-08-24T14:15:22Z' plan_id: string properties: id: type: string description: agency payment id ref_id: type: string x-stoplight: id: rfd6a5es2ueck description: transaction reference id amount: type: number last_updated: type: string format: date-time example: '2019-08-24T14:15:22Z' x-stoplight: id: 99pdd6i5l3lig method_desc: type: string enum: - bank - card x-stoplight: id: 37cmsrqq7czx3 status: type: integer enum: - 0 - 1 - 2 - 3 - 4 - 5 description: |- 0=scheduled,1=pending,2=applied,3=refunded,4=returned,5=canceled Statuses 1-4 can only be set by Agency scheduled: type: string format: date-time example: '2019-08-24T14:15:22Z' description: Scheduled can only be set by Freede on Freede initiated payments plan_id: type: string x-stoplight: id: pi3ryfcfb14r1 created: type: string x-stoplight: id: vihk17w38wm3h format: date-time fee: type: number x-stoplight: id: n9i05m79jgpkn required: - id - amount - last_updated - method_desc - status - created ConsumerRef: title: ConsumerRef x-stoplight: id: nuwsp8cjocfvw type: object properties: first: type: string last: type: string ref: type: string PaymentRequest: type: object x-examples: Example 1: id: string amount: 0 when: '2019-08-24T14:15:22Z' consumer_ref: string method: bank status: 0 scheduled: '2019-08-24T14:15:22Z' properties: method_id: type: string x-stoplight: id: t8jzmh24gxh9g description: Stored payment method ID to be provided if method is not method: x-stoplight: id: 69c4ir6wtkfvt anyOf: - $ref: '#/components/schemas/PaymentMethodBank' - $ref: '#/components/schemas/PaymentMethodCard' description: Payment method if method_id is not provided payments: type: array x-stoplight: id: pb8nijp9pahwm items: x-stoplight: id: 124n0ple7wka3 type: object properties: amount: type: number x-stoplight: id: 1dt6kl1x4xzf6 conv_fee: type: number x-stoplight: id: j727bjy3eftrm scheduled: type: string x-stoplight: id: j8xgr60qcj32b format: date offer_id: type: string x-stoplight: id: heggu9z7lgvgo description: Offer ID if payment is for a settlement consumer_ref: type: string x-stoplight: id: g6unzqxfhrbsd store_method: type: boolean x-stoplight: id: nlbu165qxq6cm description: If consumer wants to store the payment method for later use required: - payments - consumer_ref - store_method PaymentMethodBank: title: PaymentMethodBank x-stoplight: id: 5hf37zo1l7i8m type: object description: Bank payment method properties: account_holder: type: string x-stoplight: id: aj90fw9buvzbj account_type: type: string x-stoplight: id: mxyh3f5s42k1s account_number: type: string x-stoplight: id: pn6xqnvxz0vjw routing_number: type: string x-stoplight: id: q2jp6i7caz0u0 billing_address: type: string x-stoplight: id: rskwsewmd8ith billing_address2: type: string x-stoplight: id: 60j8jr6x06zub billing_city: type: string x-stoplight: id: 4dcpubnck7hvo billing_state: type: string x-stoplight: id: m5g473f5ok7vs billing_zip: type: string x-stoplight: id: qyayc9oeu8shx billing_country: type: string x-stoplight: id: 8mtz2fmm2ue90 required: - account_holder - account_type - account_number - routing_number - billing_address - billing_city - billing_state - billing_zip - billing_country x-examples: {} PaymentMethodCard: type: object x-examples: Example 1: account_holder: string account_type: string account_number: string routing_number: string billing_address: string billing_address2: string billing_city: string billing_state: string billing_zip: string billing_country: string properties: account_holder: type: string card_type: type: string x-stoplight: id: q31tsmtbezx0o card_number: type: string x-stoplight: id: ohk7xicalvpco expiry: type: string x-stoplight: id: c58geegvuir06 example: MM/DD billing_address: type: string billing_address2: type: string billing_city: type: string billing_state: type: string billing_zip: type: string billing_country: type: string required: - account_holder - card_type - card_number - expiry - billing_address - billing_city - billing_state - billing_zip - billing_country securitySchemes: {}