Get RFI
Get a request-for-information (RFI) by id
X-Api-Key<token>API key in format: sti_env_prefix_secret
rfiId*string^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidDefault Response
application/json- response
Request-for-information: what a customer must complete for a held subject
rfi_id*string^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidtype*stringRFI type: a held verification level, a held transfer / deposit, or a request raised by Stables compliance (manual; holds nothing)
"verification""transaction""manual"status*stringRFI status
"open""submitted""satisfied""expired""waived""rejected"customer_id*string^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidsubject*stringWhat the RFI is about: the customer, or one payment (transaction_reference_id)
"customer""payment"kyc_level?stringThe gated verification level (verification RFIs)
transaction_reference_id?stringThe held deposit id (transaction RFIs), or the payment a manual RFI is about (nothing is held)
transaction_type?string"transfer""virtual_account"transfer_id?stringThe held transfer (transaction RFIs on a transfer)
virtual_account_id?stringThe virtual account the held deposit arrived on (transaction RFIs on a deposit)
reasons*array<>message?stringWhy Stables compliance is asking (manual RFIs)
billable*booleanWhether a compliance fee applies when this RFI resolves
fee?|The compliance fee charged when this RFI resolves (present on billable RFIs; null when none applies)
requirements*array<|||>rejection_reason?stringWhy Stables rejected the information submitted. Present while the RFI is open again (resubmit to clear it) or when it was rejected for good (status rejected; it can't be resubmitted)
rejected_at?string^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$date-timecreated_at*string^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$date-timeexpires_at?stringResponse deadline. Manual RFIs stay open past it (shown as overdue)
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$date-timeresolved_at?string^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$date-timecurl -X GET 'https://api.sandbox.stables.money/api/v1/rfis/497f6eca-6276-4993-bfeb-53cbbbba6f08'{ "rfi_id": "67dff3e5-8fe4-4fc3-bd34-9ccc65996247", "type": "verification", "status": "open", "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e", "subject": "customer", "kyc_level": "string", "transaction_reference_id": "string", "transaction_type": "transfer", "transfer_id": "string", "virtual_account_id": "string", "reasons": [ { "reason_code": "string", "description": "string" } ], "message": "string", "billable": true, "fee": { "amount_minor": "string", "currency": "string" }, "requirements": [ { "requirement_id": "6bcf6ec7-61c3-4af0-a310-59616a4dac61", "type": "kyc_level", "required_level": "string", "status": "pending", "action": { "kind": "verification_link", "verification_type": "string" } } ], "rejection_reason": "string", "rejected_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "expires_at": "2019-08-24T14:15:22Z", "resolved_at": "2019-08-24T14:15:22Z"}Each RFI lists one or more requirements. Answer each one according to its type:
type | How to answer it |
|---|---|
evidence | Fetch the form with Get Evidence Form, then send the answers and documents with Submit Evidence. |
kyc_level | Pass action.verification_type to Create Verification Link and send the customer the link. The requirement is satisfied when they complete it. |
kyc_capability | Same as kyc_level, using the suggested action when one is present. resubmission or rejection_reason means Stables wants the data sent again. |
manual_review | Nothing to submit. Stables compliance is reviewing. |
The RFI resolves once every requirement is satisfied or waived, and any payment it held is released.
For the full lifecycle, statuses and webhooks, see Requests for Information (RFIs).