- #643 Fixed PHP doc blocks.
- #654 Fixed idempotency response to return the error object.
- #656 Update
bankAccountId
parameter to accept alphanumerical IDs.
Thanks for you contribution @williamdes
New endpoints for The Virtual Account object:
- Create a Virtual Account
- Deactivate a Virtual Account
- View a Virtual Account
- List Virtual Accounts for a Wallet
- View Client Availabilities
-
New endpoint: Create a Bancontact PayIn
-
New parameter
PaymentCategory
for the following endpoints :
New parameter StatementDescriptor
for the following endpoints :
Thanks @williamdes
- New parameter
CardHolderName
for Update Card registration
- Updated the implementation for Look up metadata for a payment method. The
CommercialIndicator
andCardType
fields have been moved to theBinData
object in the API response.
- #637 Reset DebugMode to false by default
- New endpoint Add tracking to Paypal payin
- New parameter
SecureMode
for Create card validation - New parameters for Paypal mean of payment :
CancelURL
&Category
(sub-parameter ofLineItems
). And management ofPaypalPayerID
,BuyerCountry
,BuyerFirstname
,BuyerLastname
,BuyerPhone
,PaypalOrderID
in the response.
- Fixed incorrect spelling of the
Subtype
key in theBinData
parameter. - Conversions endpoint spelling
- The optional Fees parameter is now available on instant conversions, allowing platforms to charge users for FX services. More information here.
- Platforms can now use a quote to secure the rate for a conversion between two currencies for a set amount of time. More information here.
- Introduced the
UKHeaderFlag
boolean configuration key. Platforms partnered with Mangopay's UK entity should set this key to true for proper configuration.
- New endpoint to look up metadata from BIN or Google Pay token. More information here
- Get a card validation endpoint
- Validate the format of user data endpoint
- Deprecate dynamic properties #592
- Constant class created for UserCategory parameter
New CardInfo
parameter returned on card transactions. More information here.
The IDEAL legacy implementation has been enhanced. You can now pass the Bic
., and if provided, the API response will include the BankName
parameter. More information here.
It's now possible to specify an amount for DebitedFunds and Fees when you create a refund with PayIns->CreateRefund()
.
- Giropay and Ideal integrations with Mangopay have been improved.
- Klarna param "MerchantOrderId" has been renamed to "Reference"
- New Reference parameter for the new Paypal implementation.
- Instantly convert funds between 2 wallets of different currencies owned by the same user with the new SPOT FX endpoints
- Formatting issues (linter)
- Multibanco, Satispay, Blik, Klarna are now available as a payment method with Mangopay. This payment method is in private beta. Please contact support if you have any questions.
- Card validation endpoint is now available (Private beta)
- A new parameter for Paypal : ShippingPreference
- Timeout configuration is now customizable. Default value is now 30s.
- Google Pay integration with Mangopay has been improved. This payment method is in private beta. Please contact support if you have any questions.
- MBWay & PayPal are now using Web Execution Type.
Paypal integration with Mangopay has been improved. This payment method is in private beta. Please contact support if you have any questions.
Phone
parameter instead ofPhoneNumber
for MBWay
- linter issue for the new Mbway PayIn model
- MB WAY is now available as a payment method with Mangopay. This payment method is in private beta. Please contact support if you have any questions.
Knowing when a dispute was closed is now possible thanks to the new ClosedDate parameter for the Dispute object.
The following endpoints have been updated accordingly:
Vew a Dispute
List Disputes that need settling
Please note that the new ClosedDate field will only display values for the Disputes closed after this release. Otherwise, a null value will be returned.
- Fix bug preventing access to authentication endpoint
Verifying some specific legal structures is now more efficient thanks to a new legal entity type: PARTNERSHIP
.
The Legal User LegalPersonType parameter now includes the PARTNERSHIP
value. The following endpoints have been updated accordingly:
Please note that changing the LegalPersonType to PARTNERSHIP
for an existing user will automatically result in:
- A KYC downgrade to Light (default) verification
- The REGISTRATION_PROOF document being flagged as OUT_OF_DATE.
With this new LegalPersonType, the MANGOPAY team can better handle specific legal structures and speed up the validation process.
Preauthorizations can now hold funds for up to 30 days, therefore ensuring the solvency of a registered card for the same amount of time.
- The ApiDeposits class has been added with methods for creating, fetching and canceling a deposit
- The CreateCardPreAuthorizedDepositPayIn() method has been added to the ApiPayIns class
Thanks to 30-day preauthorizations, MANGOPAY can provide a simpler and more flexible payment experience for a wide range of use cases, especially for rentals.
- 565 : Add Id on PayInRecurringRegistration
- 564 : Fix type hint for RemainingFunds
- 563 : Added CardId property to PayInExecutionDetailsDirect and used “int” as types for identifiers
Thanks @AntoineLemaire & @garsaud
Tests have been fixed due to API updates
##Added New country authorizations endpoints
Country authorizations can now be viewed by using one of the following endpoints:
View a country's authorizations
View all countries' authorizations
With these calls, it is possible to check which countries have:
- Blocked user creation
- Blocked bank account creation
- Blocked payout creation
Please refer to the Restrictions by country article for more information.
##Added Recurring: €0 deadlines for CIT
Setting free recurring payment deadlines is now possible for CIT (customer-initiated transactions) with the FreeCycles parameter.
The FreeCycles parameter allows platforms to define the number of consecutive deadlines that will be free. The following endpoints have been updated to take into account this new parameter:
Create a Recurring PayIn Registration
View a Recurring PayIn Registration
This feature provides new automation capabilities for platforms with offers such as “Get the first month free” or “free trial” subscriptions.
Please refer to the Recurring payments overview documentation for more information.
Implementation of UserCategory has been simplified
Users can now be differentiated depending on their MANGOPAY usage.
This is possible with the new UserCategory parameter, whose value can be set to:
- Payer – For users who are only using MANGOPAY to give money to other users (i.e., only pay).
- Owner – For users who are using MANGOPAY to receive funds (and who are therefore required to accept MANGOPAY’s terms and conditions).
Please note that the following parameters become required as soon as the UserCategory is set to “Owner”:
- HeadquartersAddress
- CompanyNumber (if the LegalPersonType is “Business”)
- TermsAndConditionsAccepted.
The documentation of user-related endpoints has been updated and reorganised to take into account the new parameter:
Create a Natural User (Payer) Create a Natural User (Owner) Update a Natural User Create a Legal User (Payer) Create a Legal User (Owner) Update a Legal User View a User List all Users
Differentiating the platform users results in a smoother user experience for “Payers” as they will have less declarative data to provide.
A PR to add the missing RecurringPayinRegistrationId to all PayIn get calls to match the MangoPay API calls. Thanks @H4wKs
#552
#551
Thanks @Asenar
The acceptance of the MANGOPAY terms and conditions by the end user can now be registered via the SDK.
This information can be managed by using the new TermsAndConditionsAccepted
parameter added to the User
object.
The following API endpoints have been updated to take into account the new TermsAndConditionsAccepted parameter:
Create a Natural User Update a Natural User Create a Legal User Update a Legal User View a User
Please note that:
- Existing users have to be updated to include the terms and conditions acceptance information.
- Once accepted, the terms and conditions cannot be revoked.
With the function
PayOuts->CheckInstantPayoutEligibility($params);
the destination bank reachability can now be verified prior to making an instant payout. This results in a better user experience, as this preliminary check will allow the platform to propose the instant payout option only to end users whose bank is eligible.
We are now compatible with psr/log 1 to psr/log 3.
We are now providing new hooks for our new feature Instant payouts :
- INSTANT_PAYOUT_SUCCEEDED
- INSTANT_PAYOUT_FALLBACKED
It will allow you to trigger an action depends on the Instant Payout treatment.
You can now change the status to "ENDED" for a recurring payment.
- "Status" is now available in the response when you request a recurring payment registration.
- Fix recurring PayIn CIT / MIT create methods return doctype
As requested by numerous clients, we are now providing Payconiq as a new mean-of-payment. To request access, please contact MANGOPAY.
We provide more information regarding refused KYC documents. Therefore it will be easier for you to adapt your app behavior and help your end user.
You are now able to see the exact explanation thanks to a new parameter called “Flags”.
It has been added to
MangoPay::KycDocument.fetch(new_natural_user['Id'], new_document['Id'])
It will display one or several error codes that provide the reason(s) why your document validation has failed. These error codes description are available here.
- Better support of more PHPUnit versions
- Cleanup the vendor bundle, to reduce the size of the SDK
Thanks williamdes for your help
- ChargeDate has been added for PayInPaymentDetailsDirectDebit
- Change
FallbackReason
parameter's type to object in PayOutPaymentDetailsBankWire
- You can now update and view a Recurring PayIn Registration object. To know more about this feature, please consult the documentation here.
- To improve recurring payments, we have added new parameters for CIT : DebitedFunds & Fees. To know more about this feature, please consult the documentation here
We have added a new feature recurring payments dedicated to clients needing to charge a card repeatedly, such as subscriptions or payments installments.
You can start testing in sandbox, to help you define your workflow. This release provides the first elements of the full feature.
- Create a Recurring PayIn Registration object, containing all the information to define the recurring payment
- Initiate your recurring payment flow with an authenticated transaction (CIT) using the Card Recurring PayIn endpoint
- Continue your recurring payment flow with an non-authenticated transaction (MIT) using the Card Recurring PayIn endpoint
This feature is not yet available in production and you need to contact the Support team to request access.
Mangopay introduces the instant payment mode. It allows payouts (transfer from wallet to user bank account) to be processed within 25 seconds, rather than the 48 hours for a standard payout.
You can now use this new type of payout with the PHP SDK.
Example :
$payOutGet = $this->_api->PayOuts->GetBankwire($payOut->Id);
// where $payOut->Id is the id of an existing payout
Please note that this feature must be authorized and activated by MANGOPAY. More information here.
- Improved documentation around ubo declaration reason
- ResponseError object improvement
More information about how to test payments, click here.
- Fix Shipping was missing Libraries\Dto thank you @ericabouaf
- Fix
BankAccount
IBAN reference for tests - FIX path oauth/token erreur 404 url not found. Thank you @rachedbelhadj
Some of you use a lot the PreAuthorization feature of our API. To make your life easier, we have added three new events :
- PREAUTHORIZATION_CREATED
- PREAUTHORIZATION_SUCCEEDED
- PREAUTHORIZATION_FAILED
The goal is to help you monitor a PreAuthorization with a webhook.
Example: If a PreAuthorization is desynchronized, when the status is updated, you will be able to know it.
- Thanks to @MockingMagician, the SDK is PSR4 / PSR12 compliant. That help your IDE and make sure you can run tests on case-sensitive system. Plus, docker environments has been added to run tests locally in all PHP major versions.
- To better illustrate the fact that Rate Limiting Reset is a timestamp, we have change $rateLimits[0]->ResetTimeMillis to $rateLimits[0]->ResetTimeTimestamp
This on-demand feature is for testing purposes only and will not be available in production
We've added a new parameter Requested3DSVersion
(not mandatory) that allows you to choose between versions of 3DS protocols (managed by the parameter SecureMode
). Two values are available:
V1
V2_1
If nothing is sent, the flow will be 3DS V1.
The Requested3DSVersion
may be included on all calls to the following endpoints:
/preauthorizations/card/direct
/payins/card/direct
In the API response, the Requested3DSVersion
will show the value you requested:
V1
V2_1
null
– indicates that nothing was requested
The parameter Applied3DSVersion
shows you the version of the 3DS protocol used. Two values are possible:
V1
V2_1
- Fixed UBO declaration by adding missing
UserId
- Added missing
Billing
in/payins/card/web
- Test on
IpAddress
presence in/payins/card/direct
- 3DS2 integration with Shipping and Billing objects, including FirstName and a LastName fields
The objects Billing and Shipping may be included on all calls to the following endpoints:
- /preauthorizations/card/direct
- /payins/card/direct
- /payins/card/web
- Activate Instant Payment for payouts by adding a new parameter PayoutModeRequested on the following endpoint /payouts/bankwire
- The new parameter PayoutModeRequested can take two differents values : "INSTANT_PAYMENT" or "STANDARD" (STANDARD = the way we procede normaly a payout request)
- This new parameter is not mandatory and if empty or not present, the payout will be "STANDARD" by default
- Instant Payment is in beta all over Europe - SEPA region
- Fix inverted params for PHP compatibility : Due to compatibility issues with newer versions of PHP we have inverted params in certain methods, including constructor, please check the release code for further detail 🔄
- Fix method ScopeBlocked for blocked status
- Fix BrowserInfo class
Added IpAddress and BrowserInfo parameters to the following endpoints and corresponding objects
- /payins/card/direct
- /preauthorizations/card/direct
Added 'NO_CHOICE' value for the SecureMode parameter
- Removed testing older PHP testing versions
- Added 'Regulatory' endpoint to allow checks of User Block Status
- Added support for Regulatory -> Blocked Status Hooks
- Added methods for creating Client bank accounts and client payouts
- New endpoint : GET .../v2.01/ClientId/preauthorizations/PreAuthorizationId/transactions/ which allows multiple transactions to be listed
- Testing config changes for TLS, this was blocking a part of the deploy process
- Sorting::_sortFields changed to avoid an error when calling GetSortParameter()
- Changed ignore phpunit-cache and minor "Field" typo
- removed php 5.4 and 5.5 from travis and updated curl ssl version
- New endpoint to support changes to Card Validation process (please listen out for product announcements)
- New RemainingFunds Parameters (Complete feature not fully activated, please listen for product announcements)
- Fix to PayInWebExtendedView
- As part of KYC improvements, we are adding an OUT_OF_DATE status for KYC documents
- New MultiCapture Parameter added to Preauthorization object (Complete feature not fully activated, please listen for product announcements)
- "User-agent" format in the headers changed, aligned to other assets
- Improvements to error handling for RestTool.php requests
- USER_KYC_REGULAR has been added as a new Event. Thanks to it, you are now able to know when all the needed KYCs for a user have been validated and its KYCLevel is updated.
- Release adds typing for EventType values KYC_OUTDATED USER_KYC_REGULAR and USER_KYC_LIGHT
- Updated filtering on user Cards list
- Google Pay are ready to be supported!
- AccountNumber has been added for Payin External Instruction as a part of DebitedBankAccountDetails. Funds from a non-IBAN account are now better identified.
- Add a new
PAYLINEV2
parameter for Payin Web Card only. You must now usePayInCardTemplateURLOptions
object instead ofPayInTemplateURLOptions
(if you use custom Template). You can always usePayInTemplateURLOptions
for all of your Payin Direct Debit Web.
- Mandate Status
EXPIRED
and EventTypeMANDATE_EXPIRED
have been added.
- Deprecated syntax on RestTool.php file for PHP 7.4 version.
- ApplePay
Payin
functions are now available. More info about activation to come in the following weeks... UBODeclaration
can be retrieved only with its ID thanks to newGetById
functionCOUNTERFEIT_PRODUCT
added as a newDisputeReasonType
GetEMoney
function has been fixed due to too many mandatory parameters.
- GET EMoney method now supports year and month parameters. More info on our docs
- Add missing
isActive
property forUBOs
- missing UBO EventTypes has been added
- new
UBODelaration
submission system CompanyNumber
support for LegalUsers
- Pagination has been fixed as total pages/items value was always zero.