"Adyen Payout API skill. Use when working with Adyen Payout for confirmThirdParty, declineThirdParty, payout. Covers 6 endpoints."
Resources
1Install
npx skillscat add lap-platform/claude-marketplace/plugins-adyen-payout-skills-api Install via the SkillsCat registry.
SKILL.md
Adyen Payout API
API version: 68
Auth
ApiKey X-API-Key in header | Bearer basic
Base URL
https://pal-test.adyen.com/pal/servlet/Payout/v68
Setup
- Set Authorization header with your Bearer token
- POST /confirmThirdParty -- create first confirmThirdParty
Endpoints
6 endpoints across 6 groups. See references/api-spec.lap for full details.
confirmThirdParty
| Method | Path | Description |
|---|---|---|
| POST | /confirmThirdParty | Confirm a payout |
declineThirdParty
| Method | Path | Description |
|---|---|---|
| POST | /declineThirdParty | Cancel a payout |
payout
| Method | Path | Description |
|---|---|---|
| POST | /payout | Make an instant card payout |
storeDetail
| Method | Path | Description |
|---|---|---|
| POST | /storeDetail | Store payout details |
storeDetailAndSubmitThirdParty
| Method | Path | Description |
|---|---|---|
| POST | /storeDetailAndSubmitThirdParty | Store details and submit a payout |
submitThirdParty
| Method | Path | Description |
|---|---|---|
| POST | /submitThirdParty | Submit a payout |
Enhanced Skill Content
Question Mapping
- "How do I send a payout directly to a card?" -> POST /payout
- "How do I approve a third-party payout request?" -> POST /confirmThirdParty
- "How do I reject a pending third-party payout?" -> POST /declineThirdParty
- "How do I save a shopper's bank account for future payouts?" -> POST /storeDetail
- "How do I store payment details and immediately submit a third-party payout?" -> POST /storeDetailAndSubmitThirdParty
- "How do I submit a payout using previously stored payment details?" -> POST /submitThirdParty
- "How do I pay out to a bank account (IBAN) instead of a card?" -> POST /payout (with bank details in fundSource) or POST /storeDetailAndSubmitThirdParty (with bank object)
- "How do I set up recurring payouts for a shopper?" -> POST /storeDetail (store with recurring contract) then POST /submitThirdParty
- "How do I confirm or decline a payout I submitted earlier?" -> POST /confirmThirdParty or POST /declineThirdParty (using originalReference from submit response)
- "How do I issue a payout to a natural person vs a company?" -> POST /storeDetail or POST /storeDetailAndSubmitThirdParty (set entityType to NaturalPerson or Company)
- "How do I include fraud scoring in a payout?" -> POST /payout (include fraudOffset in request)
- "What reference do I use to confirm a previously submitted payout?" -> POST /confirmThirdParty (originalReference = pspReference from the submit call)
- "How do I pay out to a shopper in a specific currency?" -> POST /payout (set amount.currency and amount.value)
Response Tips
- confirmThirdParty / declineThirdParty: Check
responsefield for[payout-confirm-received]or[payout-decline-received];pspReferenceis the unique transaction ID for reconciliation. - payout:
resultCodeindicates outcome (Authorised, Refused, Error); if Refused, inspectrefusalReasonfor details;fraudResult.accountScoreindicates risk level when present. - storeDetail:
recurringDetailReferenceis the token needed for futuresubmitThirdPartycalls; store it alongsideshopperReference. - storeDetailAndSubmitThirdParty / submitThirdParty:
resultCodeof[payout-submit-received]means queued, not completed; watch forrefusalReasonon failures. - All endpoints: HTTP 422 signals validation errors (check response body for field-level details); 401/403 indicate API key or permission issues.
Anomaly Flags
- Unexpected resultCode: Surface immediately if
resultCodeis anything other thanAuthorisedor[payout-submit-received]-- especiallyRefusedorError. - refusalReason present: Always surface
refusalReasonto the user; common values includeNot enough balance,Declined, andFRAUD. - fraudResult.accountScore threshold: Flag when
accountScoreexceeds typical baseline (>50) as the payout may be under review or at risk of claw-back. - HTTP 422 on valid-looking requests: Often indicates a merchant account configuration issue (missing payout permission, wrong entityType, or unsupported currency) -- surface the full error body.
- Missing recurringDetailReference in storeDetail response: Indicates the detail was not stored successfully despite a 200; verify
resultCodebefore proceeding. - Deprecated fields: Watch for unknown keys in
additionalDatamaps -- Adyen uses this for feature flags and deprecation notices; surface any keys prefixed withdeprecatedormigration.
Playbook
1. One-time Direct Payout to a Card
- Call
POST /payoutwithamount(currency + value in minor units),reference(your unique ID),carddetails, andmerchantAccount. - Check
resultCodein the response --Authorisedmeans success. - Store
pspReferencefor reconciliation and dispute tracking. - If
refusalReasonis present, log it and notify the user with the reason.
2. Store Details Then Pay Out Later (Third-Party Flow)
- Call
POST /storeDetailwith shopper info (dateOfBirth,entityType,nationality,shopperEmail,shopperReference),recurringcontract, and eitherbankorcarddetails. - Save the returned
recurringDetailReference-- this is the stored payment token. - When ready to pay, call
POST /submitThirdPartywithamount,reference,selectedRecurringDetailReference(from step 2),shopperEmail,shopperReference, and the samerecurringcontract. - Note the
pspReferencefrom the response. - Call
POST /confirmThirdPartywithoriginalReferenceset to thepspReferencefrom step 4 to finalize, orPOST /declineThirdPartyto cancel.
3. Store and Submit in One Call
- Call
POST /storeDetailAndSubmitThirdPartywith all required fields:amount,dateOfBirth,entityType,nationality,recurring,reference,shopperEmail,shopperReference, plusbankorcarddetails. - Verify
resultCodeis[payout-submit-received]. - Use the returned
pspReferenceto callPOST /confirmThirdPartyto approve the payout.
4. Declining a Suspicious Payout
- Identify the payout's
pspReferencefrom the original submit response or from your records. - Call
POST /declineThirdPartywithoriginalReferenceset to thatpspReference. - Confirm
responseis[payout-decline-received]. - Log the
pspReferencefrom the decline response for audit trail.
5. Paying Out to a Bank Account via IBAN
- Call
POST /storeDetail(orPOST /storeDetailAndSubmitThirdParty) with thebankobject populated: setiban,ownerName,countryCode, and optionallybic. - Set
entityTypetoNaturalPersonorCompanyas appropriate. - Include
billingAddresswith the beneficiary's address (required by many acquiring regions). - If using
storeDetail, follow up withPOST /submitThirdPartyusing the returnedrecurringDetailReference. - Confirm the payout with
POST /confirmThirdParty.
Response Tips
- Check response schemas in references/api-spec.lap for field details
- Create/update endpoints typically return the created/updated object
References
- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas
Generated from the official API spec by LAP