
PayForU
Supports in this guide: Payments, Payouts
Provider website: payforu.cash
What you need to do for start processing transactions (brief summary)
- Get your credentials (from PayForU)
- Connect in Dashboard
- Send an API request
Prerequisites: get from PayForU
Contact your PayForU manager to get your account verified and receive the following credentials.
- API key -> Corefy field
api_key. - Signature key -> Corefy field
signature_key- used by Corefy to verify the authenticity of every Payments/Payouts callback received from PayForU. - Currency -> Corefy field
currency- the single settlement currency this account processes (UAH, RUB, KZT, or UZS). Connect a separate account per currency if you need more than one. - Test Mode -> Corefy field
test_mode- enable if you are using sandbox credentials.
Payments processing (connect Provider account, create payment-invoice)
Connect Provider account in Corefy Dashboard
Step 1 - Open connection form
Open PayForU in the provider directory and press Connect at PayForU Provider Overview page in the New connection section. Choose Provider account.
Step 2 - Fill in fields and select settings
- API key
- Signature key
- Currency -> choose the settlement currency for this account
- Test Mode -> (enable if you are using sandbox credentials)
Success
You have connected PayForU Provider account!
First request to Corefy API (MIN)
What it does: creates a payment-invoice for a card-to-card transfer. Corefy returns the recipient card requisites (card number and cardholder name) to the customer through the checkout/SDK layer, and later confirms the payment automatically once the transfer is detected - you don't need to branch your integration for this.
Payment - MIN
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "6be05631-8710-4b14-a369-1928a2b70eda",
"service": "card_transfer_uah_invoice",
"currency": "UAH",
"amount": 100
}
}
}
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "199be985-c243-478a-86a8-4b8c902e5bb6",
"service": "card_transfer_uah_invoice",
"currency": "UAH",
"amount": 100,
"customer": {
"reference_id": "cus_123",
"name": "John Doe",
"email": "test@test.com",
"phone": "+380501234567"
}
}
}
}
Important
servicedetermines both the payment currency and route - usecard_transfer_uah_invoice(UAH),card_transfer_rub_invoice(RUB),card_transfer_kzt_invoice(KZT), orcard_transfer_uzs_invoice(UZS).- Corefy polls PayForU for the card-to-card requisites after creating the invoice; once the customer completes the bank transfer, they may be asked for the last 4 digits of their own card (an optional confirmation field) before Corefy confirms the payment with PayForU.
- None of
customer.name/customer.email/customer.phoneare required - if missing, they are simply omitted from the request to PayForU; there is no hardcoded placeholder fallback for any of them.
Extended request (MAX)
Why add extra fields (typical reasons): - Provide additional customer details for compliance/reconciliation - Positively influence conversion rate - Include optional fields required by your specific flow
Refunds
PayForU does not support refunds on Payments - the payment integration has no refund capability wired up.
Payouts processing (connect Provider account, create payout-invoice)
Connect Provider account in Corefy Dashboard
Uses the same Provider account connected above - no separate connection step.
First request to Corefy API (MIN)
What it does: creates a payout-invoice for a card-to-card bank payout.
Payout - MIN
POST /api/payout-invoices
{
"data": {
"type": "payout-invoice",
"attributes": {
"reference_id": "efbf0a2b-5590-42b7-b10b-94d49452147d",
"service": "payment_card_uah",
"currency": "UAH",
"amount": 150,
"fields": {
"card_number": "4111111111111111"
}
}
}
}
Payout - MAX
POST /api/payout-invoices
{
"data": {
"type": "payout-invoice",
"attributes": {
"reference_id": "efbf0a2b-5590-42b7-b10b-94d49452147d",
"service": "payment_card_uah",
"currency": "UAH",
"amount": 150,
"customer": {
"reference_id": "cus_123",
"name": "John Doe",
"email": "test@test.com"
},
"fields": {
"card_number": "4111111111111111"
}
}
}
}
Important
fields.card_numberis required - it is the recipient card PayForU transfers the payout to.servicedetermines the payout currency - usepayment_card_uah(UAH),payment_card_rub(RUB), orpayment_card_kzt(KZT). Within a currency, Corefy automatically routes the payout to a bank currently enabled live on your PayForU account - you don't choose the bank explicitly.customer.name/customer.emailare optional and simply omitted if not provided - there is no hardcoded placeholder fallback for either.
Refunds
PayForU does not support refunds on Payouts.
Additional info
- Active reconciliation is available on both Payments and Payouts - PayForU supports both an asynchronous callback and an active status request that Corefy can use to finalize a transaction.
- No recurring - this connector does not support saving or charging a stored payment token through Corefy.
- Callback signature verification - Corefy verifies every Payments and Payouts callback from PayForU against your Signature key before accepting it.
- Single-currency accounts - each connected PayForU account processes one settlement currency only (set via the
currencyfield at connect time); connect a separate account per currency you need to support.
FAQ / Troubleshooting
- Connection test fails / invalid credentials -> verify the API key matches the selected environment (
test_modeon/off) - Callback rejected as invalid signature -> confirm the Signature key on the account matches the one issued by PayForU
- Payment stuck waiting for requisites -> PayForU did not return card-to-card requisites in time; verify the requested
service/currency matches your account's configured currency - Refund requested -> not supported for this connector, on either Payments or Payouts
- Payout declined immediately -> the requested currency's bank route is not currently enabled live on your PayForU account
Question
Still looking for help connecting your PayForU account? Please contact our support team!