Reading requiredActions
data.requiredActions is the only list you act on. Every entry has a type and one details object named after it, so REQUIRED_ACTION_TYPE_REPLACE_CARD carries replaceCard: read type, then the matching field.
Available today, shaped to fit
Every action below is live for every organization the moment webhooks are on; nothing is built on Casap's side first. The shapes describe what Casap needs you to know, not how you have to receive it. If your systems want a different contract, for example one adjustment endpoint that takes the action as an enum instead of three entries, Casap meets you where you are and agrees the mapping at onboarding.
Action types
type |
Asks you to |
|---|---|
REQUIRED_ACTION_TYPE_ISSUE_PROVISIONAL_CREDIT |
Credit the member while the investigation runs. |
REQUIRED_ACTION_TYPE_ISSUE_FINAL_CREDIT |
Credit the member after a decision in their favour. |
REQUIRED_ACTION_TYPE_REVERSE_PROVISIONAL_CREDIT |
Take a provisional credit back after a decision against. |
REQUIRED_ACTION_TYPE_REPLACE_CARD |
Reissue the card the disputed transactions were made on. |
REQUIRED_ACTION_TYPE_COLLECT_CUSTOMER_INFORMATION |
Optional. Ask the member for a document or an answer. |
REQUIRED_ACTION_TYPE_NOTIFY_CUSTOMER |
Optional. Tell the member something happened. |
The three credit entries share one shape, transactionUuid plus amount, and differ only in type; many partners implement them as one adjustment endpoint keyed on the type. The last two are off unless you ask for them, because Casap sends member communications itself. See Member communications.
Four rules
It is a snapshot, not a change log. Each message carries the complete set of outstanding work at that moment. An entry present in an earlier message and absent from a later one has been satisfied. Never accumulate entries across messages.
An empty list is omitted. When nothing is outstanding the requiredActions key is absent from data, never []. Most messages look like this: a file upload, a comment, a credit already issued, or work that sits with Casap all produce a message with nothing for you to do.
Ignore the other action fields. data.dispute.actions is a cumulative record of what has ever happened, and data.dispute.transactions[].requiredActions is a per-transaction list the root list replaces. Acting on either repeats work.
Entries are ordered. Information requests, then provisional credits, then settlements, then the card, then notifications; within a group, transaction order. Fee transactions never produce an entry.
Encoding
- 64-bit integers are strings. Timestamps and deadlines are quoted.
amountInCentsis a number, not a string.- Enums are sent as their full name.
- Fields with no value are omitted; do not expect empty strings, zeros or empty arrays.
- Fields these pages do not describe may appear. Ignore them, and ignore any
typeyou do not recognise.